mirror of
https://gitee.com/dolphinscheduler/DolphinScheduler.git
synced 2024-12-04 21:28:00 +08:00
[Feature][JsonSplit-api] Replace projectName with projectCode in ProcessInstance api (#5950)
* check has cycle of ProcessDefinition * checkProcessNode of processDefinition * TaskInstance api * Replace projectName with projectCode in ProcessInstance api Co-authored-by: JinyLeeChina <297062848@qq.com>
This commit is contained in:
parent
339d7f4166
commit
7c1f891a8e
@ -73,12 +73,11 @@ import springfox.documentation.annotations.ApiIgnore;
|
||||
*/
|
||||
@Api(tags = "PROCESS_INSTANCE_TAG")
|
||||
@RestController
|
||||
@RequestMapping("projects/{projectName}/instance")
|
||||
@RequestMapping("projects/{projectCode}/instance")
|
||||
public class ProcessInstanceController extends BaseController {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(ProcessInstanceController.class);
|
||||
|
||||
|
||||
@Autowired
|
||||
ProcessInstanceService processInstanceService;
|
||||
|
||||
@ -86,7 +85,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* query process instance list paging
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefinitionId process definition id
|
||||
@ -114,7 +113,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_LIST_PAGING_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessInstanceList(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "processDefinitionId", required = false, defaultValue = "0") Integer processDefinitionId,
|
||||
@RequestParam(value = "searchVal", required = false) String searchVal,
|
||||
@RequestParam(value = "executorName", required = false) String executorName,
|
||||
@ -124,14 +123,13 @@ public class ProcessInstanceController extends BaseController {
|
||||
@RequestParam(value = "endDate", required = false) String endTime,
|
||||
@RequestParam("pageNo") Integer pageNo,
|
||||
@RequestParam("pageSize") Integer pageSize) {
|
||||
|
||||
Map<String, Object> result = checkPageParams(pageNo, pageSize);
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return returnDataListPaging(result);
|
||||
}
|
||||
searchVal = ParameterUtils.handleEscapes(searchVal);
|
||||
result = processInstanceService.queryProcessInstanceList(
|
||||
loginUser, projectName, processDefinitionId, startTime, endTime, searchVal, executorName, stateType, host, pageNo, pageSize);
|
||||
result = processInstanceService.queryProcessInstanceList(loginUser, projectCode, processDefinitionId, startTime, endTime,
|
||||
searchVal, executorName, stateType, host, pageNo, pageSize);
|
||||
return returnDataListPaging(result);
|
||||
}
|
||||
|
||||
@ -139,7 +137,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* query task list by process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return task list for the process instance
|
||||
*/
|
||||
@ -152,10 +150,9 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(QUERY_TASK_LIST_BY_PROCESS_INSTANCE_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryTaskListByProcessId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId
|
||||
) throws IOException {
|
||||
Map<String, Object> result = processInstanceService.queryTaskListByProcessId(loginUser, projectName, processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId) throws IOException {
|
||||
Map<String, Object> result = processInstanceService.queryTaskListByProcessId(loginUser, projectCode, processInstanceId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -163,7 +160,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* update process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceJson process instance json
|
||||
* @param processInstanceId process instance id
|
||||
* @param scheduleTime schedule time
|
||||
@ -186,16 +183,15 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(UPDATE_PROCESS_INSTANCE_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result updateProcessInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "processInstanceJson", required = false) String processInstanceJson,
|
||||
@RequestParam(value = "processInstanceId") Integer processInstanceId,
|
||||
@RequestParam(value = "scheduleTime", required = false) String scheduleTime,
|
||||
@RequestParam(value = "syncDefine", required = true) Boolean syncDefine,
|
||||
@RequestParam(value = "locations", required = false) String locations,
|
||||
@RequestParam(value = "flag", required = false) Flag flag
|
||||
) throws ParseException {
|
||||
Map<String, Object> result = processInstanceService.updateProcessInstance(loginUser, projectName,
|
||||
processInstanceId, processInstanceJson, scheduleTime, syncDefine, flag, locations);
|
||||
@RequestParam(value = "flag", required = false) Flag flag) throws ParseException {
|
||||
Map<String, Object> result = processInstanceService.updateProcessInstance(loginUser, projectCode, processInstanceId,
|
||||
processInstanceJson, scheduleTime, syncDefine, flag, locations);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -203,7 +199,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* query process instance by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return process instance detail
|
||||
*/
|
||||
@ -216,10 +212,9 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result queryProcessInstanceById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId
|
||||
) {
|
||||
Map<String, Object> result = processInstanceService.queryProcessInstanceById(loginUser, projectName, processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId) {
|
||||
Map<String, Object> result = processInstanceService.queryProcessInstanceById(loginUser, projectCode, processInstanceId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -227,7 +222,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* query top n process instance order by running duration
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param size number of process instance
|
||||
* @param startTime start time
|
||||
* @param endTime end time
|
||||
@ -244,14 +239,11 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(QUERY_PROCESS_INSTANCE_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<ProcessInstance> queryTopNLongestRunningProcessInstance(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("size") Integer size,
|
||||
@RequestParam(value = "startTime", required = true) String startTime,
|
||||
@RequestParam(value = "endTime", required = true) String endTime
|
||||
|
||||
) {
|
||||
projectName = ParameterUtils.handleEscapes(projectName);
|
||||
Map<String, Object> result = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectName, size, startTime, endTime);
|
||||
@RequestParam(value = "endTime", required = true) String endTime) {
|
||||
Map<String, Object> result = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectCode, size, startTime, endTime);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -260,7 +252,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ -273,11 +265,9 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(DELETE_PROCESS_INSTANCE_BY_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result<ProcessInstance> deleteProcessInstanceById(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId
|
||||
) {
|
||||
// task queue
|
||||
Map<String, Object> result = processInstanceService.deleteProcessInstanceById(loginUser, projectName, processInstanceId);
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId) {
|
||||
Map<String, Object> result = processInstanceService.deleteProcessInstanceById(loginUser, projectCode, processInstanceId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -285,7 +275,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* query sub process instance detail info by task id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskId task id
|
||||
* @return sub process instance detail
|
||||
*/
|
||||
@ -298,9 +288,9 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(QUERY_SUB_PROCESS_INSTANCE_DETAIL_INFO_BY_TASK_ID_ERROR)
|
||||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result querySubProcessInstanceByTaskId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("taskId") Integer taskId) {
|
||||
Map<String, Object> result = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, taskId);
|
||||
Map<String, Object> result = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, taskId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -308,7 +298,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* query parent process instance detail info by sub process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param subId sub process id
|
||||
* @return parent instance detail
|
||||
*/
|
||||
@ -321,9 +311,9 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(QUERY_PARENT_PROCESS_INSTANCE_DETAIL_INFO_BY_SUB_PROCESS_INSTANCE_ID_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result queryParentInstanceBySubId(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("subId") Integer subId) {
|
||||
Map<String, Object> result = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, subId);
|
||||
Map<String, Object> result = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, subId);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
@ -352,7 +342,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* encapsulation gantt structure
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return gantt tree data
|
||||
*/
|
||||
@ -365,7 +355,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(ENCAPSULATION_PROCESS_INSTANCE_GANTT_STRUCTURE_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result viewTree(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectName", value = "PROJECT_NAME", required = true) @PathVariable String projectName,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam("processInstanceId") Integer processInstanceId) throws Exception {
|
||||
Map<String, Object> result = processInstanceService.viewGantt(processInstanceId);
|
||||
return returnDataList(result);
|
||||
@ -376,7 +366,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
* delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceIds process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
@ -390,9 +380,8 @@ public class ProcessInstanceController extends BaseController {
|
||||
@ApiException(BATCH_DELETE_PROCESS_INSTANCE_BY_IDS_ERROR)
|
||||
@AccessLogAnnotation
|
||||
public Result batchDeleteProcessInstanceByIds(@RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@PathVariable String projectName,
|
||||
@RequestParam("processInstanceIds") String processInstanceIds
|
||||
) {
|
||||
@PathVariable long projectCode,
|
||||
@RequestParam("processInstanceIds") String processInstanceIds) {
|
||||
// task queue
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
List<String> deleteFailedIdList = new ArrayList<>();
|
||||
@ -402,7 +391,7 @@ public class ProcessInstanceController extends BaseController {
|
||||
for (String strProcessInstanceId : processInstanceIdArray) {
|
||||
int processInstanceId = Integer.parseInt(strProcessInstanceId);
|
||||
try {
|
||||
Map<String, Object> deleteResult = processInstanceService.deleteProcessInstanceById(loginUser, projectName, processInstanceId);
|
||||
Map<String, Object> deleteResult = processInstanceService.deleteProcessInstanceById(loginUser, projectCode, processInstanceId);
|
||||
if (!Status.SUCCESS.equals(deleteResult.get(Constants.STATUS))) {
|
||||
deleteFailedIdList.add(strProcessInstanceId);
|
||||
logger.error((String) deleteResult.get(Constants.MSG));
|
||||
@ -417,7 +406,6 @@ public class ProcessInstanceController extends BaseController {
|
||||
} else {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
}
|
||||
|
||||
return returnDataList(result);
|
||||
}
|
||||
}
|
||||
|
@ -38,23 +38,29 @@ public interface ProcessInstanceService {
|
||||
/**
|
||||
* return top n SUCCESS process instance order by running time which started between startTime and endTime
|
||||
*/
|
||||
Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, String projectName, int size, String startTime, String endTime);
|
||||
Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser,
|
||||
long projectCode,
|
||||
int size,
|
||||
String startTime,
|
||||
String endTime);
|
||||
|
||||
/**
|
||||
* query process instance by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return process instance detail
|
||||
*/
|
||||
Map<String, Object> queryProcessInstanceById(User loginUser, String projectName, Integer processId);
|
||||
Map<String, Object> queryProcessInstanceById(User loginUser,
|
||||
long projectCode,
|
||||
Integer processId);
|
||||
|
||||
/**
|
||||
* paging query process instance list, filtering according to project, process definition, time range, keyword, process status
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefineId process definition id
|
||||
@ -65,21 +71,30 @@ public interface ProcessInstanceService {
|
||||
* @param endDate end time
|
||||
* @return process instance list
|
||||
*/
|
||||
Map<String, Object> queryProcessInstanceList(User loginUser, String projectName, Integer processDefineId,
|
||||
String startDate, String endDate,
|
||||
String searchVal, String executorName, ExecutionStatus stateType, String host,
|
||||
Integer pageNo, Integer pageSize);
|
||||
Map<String, Object> queryProcessInstanceList(User loginUser,
|
||||
long projectCode,
|
||||
Integer processDefineId,
|
||||
String startDate,
|
||||
String endDate,
|
||||
String searchVal,
|
||||
String executorName,
|
||||
ExecutionStatus stateType,
|
||||
String host,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
|
||||
/**
|
||||
* query task list by process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return task list for the process instance
|
||||
* @throws IOException io exception
|
||||
*/
|
||||
Map<String, Object> queryTaskListByProcessId(User loginUser, String projectName, Integer processId) throws IOException;
|
||||
Map<String, Object> queryTaskListByProcessId(User loginUser,
|
||||
long projectCode,
|
||||
Integer processId) throws IOException;
|
||||
|
||||
Map<String, DependResult> parseLogForDependentResult(String log) throws IOException;
|
||||
|
||||
@ -87,17 +102,19 @@ public interface ProcessInstanceService {
|
||||
* query sub process instance detail info by task id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskId task id
|
||||
* @return sub process instance detail
|
||||
*/
|
||||
Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, String projectName, Integer taskId);
|
||||
Map<String, Object> querySubProcessInstanceByTaskId(User loginUser,
|
||||
long projectCode,
|
||||
Integer taskId);
|
||||
|
||||
/**
|
||||
* update process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceJson process instance json
|
||||
* @param processInstanceId process instance id
|
||||
* @param scheduleTime schedule time
|
||||
@ -107,29 +124,38 @@ public interface ProcessInstanceService {
|
||||
* @return update result code
|
||||
* @throws ParseException parse exception for json parse
|
||||
*/
|
||||
Map<String, Object> updateProcessInstance(User loginUser, String projectName, Integer processInstanceId,
|
||||
String processInstanceJson, String scheduleTime, Boolean syncDefine,
|
||||
Flag flag, String locations) throws ParseException;
|
||||
Map<String, Object> updateProcessInstance(User loginUser,
|
||||
long projectCode,
|
||||
Integer processInstanceId,
|
||||
String processInstanceJson,
|
||||
String scheduleTime,
|
||||
Boolean syncDefine,
|
||||
Flag flag,
|
||||
String locations) throws ParseException;
|
||||
|
||||
/**
|
||||
* query parent process instance detail info by sub process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param subId sub process id
|
||||
* @return parent instance detail
|
||||
*/
|
||||
Map<String, Object> queryParentInstanceBySubId(User loginUser, String projectName, Integer subId);
|
||||
Map<String, Object> queryParentInstanceBySubId(User loginUser,
|
||||
long projectCode,
|
||||
Integer subId);
|
||||
|
||||
/**
|
||||
* delete process instance by id, at the same time,delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
Map<String, Object> deleteProcessInstanceById(User loginUser, String projectName, Integer processInstanceId);
|
||||
Map<String, Object> deleteProcessInstanceById(User loginUser,
|
||||
long projectCode,
|
||||
Integer processInstanceId);
|
||||
|
||||
/**
|
||||
* view process instance variables
|
||||
@ -155,7 +181,8 @@ public interface ProcessInstanceService {
|
||||
* @param states states array
|
||||
* @return process instance list
|
||||
*/
|
||||
List<ProcessInstance> queryByProcessDefineCodeAndStatus(Long processDefinitionCode, int[] states);
|
||||
List<ProcessInstance> queryByProcessDefineCodeAndStatus(Long processDefinitionCode,
|
||||
int[] states);
|
||||
|
||||
/**
|
||||
* query process instance by processDefinitionCode
|
||||
@ -164,6 +191,6 @@ public interface ProcessInstanceService {
|
||||
* @param size size
|
||||
* @return process instance list
|
||||
*/
|
||||
List<ProcessInstance> queryByProcessDefineCode(Long processDefinitionCode,int size);
|
||||
|
||||
List<ProcessInstance> queryByProcessDefineCode(Long processDefinitionCode,
|
||||
int size);
|
||||
}
|
@ -141,14 +141,12 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* return top n SUCCESS process instance order by running time which started between startTime and endTime
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, String projectName, int size, String startTime, String endTime) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryTopNLongestRunningProcessInstance(User loginUser, long projectCode, int size, String startTime, String endTime) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
if (0 > size) {
|
||||
@ -184,24 +182,22 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* query process instance by id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return process instance detail
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryProcessInstanceById(User loginUser, String projectName, Integer processId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryProcessInstanceById(User loginUser, long projectCode, Integer processId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processId);
|
||||
|
||||
ProcessDefinition processDefinition = processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.PROCESS_DEFINE_NOT_EXIST, processId);
|
||||
@ -222,7 +218,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* paging query process instance list, filtering according to project, process definition, time range, keyword, process status
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param pageNo page number
|
||||
* @param pageSize page size
|
||||
* @param processDefineId process definition id
|
||||
@ -234,18 +230,22 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* @return process instance list
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryProcessInstanceList(User loginUser, String projectName, Integer processDefineId,
|
||||
String startDate, String endDate,
|
||||
String searchVal, String executorName, ExecutionStatus stateType, String host,
|
||||
Integer pageNo, Integer pageSize) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryProcessInstanceList(User loginUser,
|
||||
long projectCode,
|
||||
Integer processDefineId,
|
||||
String startDate,
|
||||
String endDate,
|
||||
String searchVal,
|
||||
String executorName,
|
||||
ExecutionStatus stateType,
|
||||
String host,
|
||||
Integer pageNo,
|
||||
Integer pageSize) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
int[] statusArray = null;
|
||||
@ -268,8 +268,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
ProcessDefinition processDefinition = processDefineMapper.queryByDefineId(processDefineId);
|
||||
|
||||
IPage<ProcessInstance> processInstanceList = processInstanceMapper.queryProcessInstanceListPaging(page,
|
||||
project.getCode(), processDefinition == null ? 0L : processDefinition.getCode(), searchVal,
|
||||
executorId, statusArray, host, start, end);
|
||||
project.getCode(), processDefinition == null ? 0L : processDefinition.getCode(), searchVal,
|
||||
executorId, statusArray, host, start, end);
|
||||
|
||||
List<ProcessInstance> processInstances = processInstanceList.getRecords();
|
||||
List<Integer> userIds = CollectionUtils.transformToList(processInstances, ProcessInstance::getExecutorId);
|
||||
@ -294,20 +294,18 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* query task list by process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processId process instance id
|
||||
* @return task list for the process instance
|
||||
* @throws IOException io exception
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryTaskListByProcessId(User loginUser, String projectName, Integer processId) throws IOException {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryTaskListByProcessId(User loginUser, long projectCode, Integer processId) throws IOException {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processId);
|
||||
List<TaskInstance> taskInstanceList = processService.findValidTaskListByProcessId(processId);
|
||||
@ -328,7 +326,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
for (TaskInstance taskInstance : taskInstanceList) {
|
||||
if (TaskType.DEPENDENT.getDesc().equalsIgnoreCase(taskInstance.getTaskType())) {
|
||||
Result<String> logResult = loggerService.queryLog(
|
||||
taskInstance.getId(), Constants.LOG_QUERY_SKIP_LINE_NUMBER, Constants.LOG_QUERY_LIMIT);
|
||||
taskInstance.getId(), Constants.LOG_QUERY_SKIP_LINE_NUMBER, Constants.LOG_QUERY_LIMIT);
|
||||
if (logResult.getCode() == Status.SUCCESS.ordinal()) {
|
||||
String log = logResult.getData();
|
||||
Map<String, DependResult> resultMap = parseLogForDependentResult(log);
|
||||
@ -346,7 +344,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
}
|
||||
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(log.getBytes(
|
||||
StandardCharsets.UTF_8)), StandardCharsets.UTF_8));
|
||||
StandardCharsets.UTF_8)), StandardCharsets.UTF_8));
|
||||
String line;
|
||||
while ((line = br.readLine()) != null) {
|
||||
if (line.contains(DEPENDENT_SPLIT)) {
|
||||
@ -371,19 +369,17 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* query sub process instance detail info by task id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param taskId task id
|
||||
* @return sub process instance detail
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, String projectName, Integer taskId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> querySubProcessInstanceByTaskId(User loginUser, long projectCode, Integer taskId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
TaskInstance taskInstance = processService.findTaskInstanceById(taskId);
|
||||
@ -397,7 +393,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
}
|
||||
|
||||
ProcessInstance subWorkflowInstance = processService.findSubProcessInstance(
|
||||
taskInstance.getProcessInstanceId(), taskInstance.getId());
|
||||
taskInstance.getProcessInstanceId(), taskInstance.getId());
|
||||
if (subWorkflowInstance == null) {
|
||||
putMsg(result, Status.SUB_PROCESS_INSTANCE_NOT_EXIST, taskId);
|
||||
return result;
|
||||
@ -413,7 +409,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* update process instance
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceJson process instance json
|
||||
* @param processInstanceId process instance id
|
||||
* @param scheduleTime schedule time
|
||||
@ -424,16 +420,14 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
*/
|
||||
@Transactional
|
||||
@Override
|
||||
public Map<String, Object> updateProcessInstance(User loginUser, String projectName, Integer processInstanceId,
|
||||
public Map<String, Object> updateProcessInstance(User loginUser, long projectCode, Integer processInstanceId,
|
||||
String processInstanceJson, String scheduleTime, Boolean syncDefine,
|
||||
Flag flag, String locations) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
//check project permission
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
//check process instance exists
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processInstanceId);
|
||||
@ -444,11 +438,11 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
//check process instance status
|
||||
if (!processInstance.getState().typeIsFinished()) {
|
||||
putMsg(result, Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR,
|
||||
processInstance.getName(), processInstance.getState().toString(), "update");
|
||||
processInstance.getName(), processInstance.getState().toString(), "update");
|
||||
return result;
|
||||
}
|
||||
ProcessDefinition processDefinition = processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
processInstance.getProcessDefinitionVersion());
|
||||
ProcessData processData = JSONUtils.parseObject(processInstanceJson, ProcessData.class);
|
||||
//check workflow json is valid TODO processInstanceJson --> processTaskRelationJson
|
||||
result = processDefinitionService.checkProcessNodeList(processInstanceJson);
|
||||
@ -456,7 +450,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
return result;
|
||||
}
|
||||
Tenant tenant = processService.getTenantForProcess(processData.getTenantId(),
|
||||
processDefinition.getUserId());
|
||||
processDefinition.getUserId());
|
||||
setProcessInstance(processInstance, tenant, scheduleTime, processData);
|
||||
int updateDefine = 1;
|
||||
if (Boolean.TRUE.equals(syncDefine)) {
|
||||
@ -464,7 +458,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
updateDefine = syncDefinition(loginUser, project, locations, processInstance, processDefinition, processData);
|
||||
|
||||
processInstance.setProcessDefinitionVersion(processDefinitionLogMapper.
|
||||
queryMaxVersionForDefinition(processInstance.getProcessDefinitionCode()));
|
||||
queryMaxVersionForDefinition(processInstance.getProcessDefinitionCode()));
|
||||
}
|
||||
|
||||
int update = processService.updateProcessInstance(processInstance);
|
||||
@ -489,7 +483,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
processDefinition.setUpdateTime(new Date());
|
||||
|
||||
return processService.saveProcessDefinition(loginUser, project, processDefinition.getName(),
|
||||
processDefinition.getDescription(), locations, processData, processDefinition, false);
|
||||
processDefinition.getDescription(), locations, processData, processDefinition, false);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -504,11 +498,11 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
processInstance.setScheduleTime(schedule);
|
||||
List<Property> globalParamList = processData.getGlobalParams();
|
||||
Map<String, String> globalParamMap = Optional.ofNullable(globalParamList)
|
||||
.orElse(Collections.emptyList())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Property::getProp, Property::getValue));
|
||||
.orElse(Collections.emptyList())
|
||||
.stream()
|
||||
.collect(Collectors.toMap(Property::getProp, Property::getValue));
|
||||
String globalParams = ParameterUtils.curingGlobalParams(globalParamMap, globalParamList,
|
||||
processInstance.getCmdTypeIfComplement(), schedule);
|
||||
processInstance.getCmdTypeIfComplement(), schedule);
|
||||
processInstance.setTimeout(processData.getTimeout());
|
||||
if (tenant != null) {
|
||||
processInstance.setTenantCode(tenant.getTenantCode());
|
||||
@ -520,19 +514,17 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* query parent process instance detail info by sub process instance id
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param subId sub process id
|
||||
* @return parent instance detail
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> queryParentInstanceBySubId(User loginUser, String projectName, Integer subId) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> queryParentInstanceBySubId(User loginUser, long projectCode, Integer subId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
|
||||
ProcessInstance subInstance = processService.findProcessInstanceDetailById(subId);
|
||||
@ -561,21 +553,18 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
* delete process instance by id, at the same time,delete task instance and their mapping relation data
|
||||
*
|
||||
* @param loginUser login user
|
||||
* @param projectName project name
|
||||
* @param projectCode project code
|
||||
* @param processInstanceId process instance id
|
||||
* @return delete result code
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = RuntimeException.class)
|
||||
public Map<String, Object> deleteProcessInstanceById(User loginUser, String projectName, Integer processInstanceId) {
|
||||
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
Project project = projectMapper.queryByName(projectName);
|
||||
|
||||
Map<String, Object> checkResult = projectService.checkProjectAndAuth(loginUser, project, projectName);
|
||||
Status resultEnum = (Status) checkResult.get(Constants.STATUS);
|
||||
if (resultEnum != Status.SUCCESS) {
|
||||
return checkResult;
|
||||
public Map<String, Object> deleteProcessInstanceById(User loginUser, long projectCode, Integer processInstanceId) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, project.getName());
|
||||
if (result.get(Constants.STATUS) != Status.SUCCESS) {
|
||||
return result;
|
||||
}
|
||||
ProcessInstance processInstance = processService.findProcessInstanceDetailById(processInstanceId);
|
||||
if (null == processInstance) {
|
||||
@ -616,8 +605,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
}
|
||||
|
||||
Map<String, String> timeParams = BusinessTimeUtils
|
||||
.getBusinessTime(processInstance.getCmdTypeIfComplement(),
|
||||
processInstance.getScheduleTime());
|
||||
.getBusinessTime(processInstance.getCmdTypeIfComplement(),
|
||||
processInstance.getScheduleTime());
|
||||
String userDefinedParams = processInstance.getGlobalParams();
|
||||
// global params
|
||||
List<Property> globalParams = new ArrayList<>();
|
||||
@ -653,7 +642,7 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
List<TaskInstance> taskInstanceList = taskInstanceMapper.findValidTaskListByProcessId(processInstance.getId(), Flag.YES);
|
||||
for (TaskInstance taskInstance : taskInstanceList) {
|
||||
TaskDefinitionLog taskDefinitionLog = taskDefinitionLogMapper.queryByDefinitionCodeAndVersion(
|
||||
taskInstance.getTaskCode(), taskInstance.getTaskDefinitionVersion());
|
||||
taskInstance.getTaskCode(), taskInstance.getTaskDefinitionVersion());
|
||||
|
||||
String localParams = JSONUtils.getNodeString(taskDefinitionLog.getTaskParams(), LOCAL_PARAMS);
|
||||
if (StringUtils.isNotEmpty(localParams)) {
|
||||
@ -689,8 +678,8 @@ public class ProcessInstanceServiceImpl extends BaseServiceImpl implements Proce
|
||||
}
|
||||
|
||||
ProcessDefinition processDefinition = processDefinitionLogMapper.queryByDefinitionCodeAndVersion(
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
);
|
||||
GanttDto ganttDto = new GanttDto();
|
||||
DAG<String, TaskNode, TaskNodeRelation> dag = processService.genDagGraph(processDefinition);
|
||||
|
@ -51,12 +51,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
paramsMap.add("pageNo", "2");
|
||||
paramsMap.add("pageSize", "2");
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/list-paging", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/list-paging", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
@ -64,12 +64,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testQueryTaskListByProcessId() throws Exception {
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/task-list-by-process-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/task-list-by-process-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
@ -88,12 +88,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
paramsMap.add("syncDefine", "false");
|
||||
paramsMap.add("locations", locations);
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectName}/instance/update", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(post("/projects/{projectCode}/instance/update", "cxc_1113")
|
||||
.header("sessionId", sessionId)
|
||||
.params(paramsMap))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
Assert.assertEquals(Status.SUCCESS.getCode(), result.getCode().intValue());
|
||||
@ -101,13 +101,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testQueryProcessInstanceById() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/select-by-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/select-by-id", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
@ -117,13 +116,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testQuerySubProcessInstanceByTaskId() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/select-sub-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("taskId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/select-sub-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("taskId", "1203"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
@ -132,13 +130,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testQueryParentInstanceBySubId() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/select-parent-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("subId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/select-parent-process", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("subId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
@ -148,13 +145,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testViewVariables() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/view-variables", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/view-variables", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
@ -164,13 +160,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testDeleteProcessInstanceById() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceId", "1204"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
@ -179,13 +174,12 @@ public class ProcessInstanceControllerTest extends AbstractControllerTest {
|
||||
|
||||
@Test
|
||||
public void testBatchDeleteProcessInstanceByIds() throws Exception {
|
||||
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectName}/instance/batch-delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceIds", "1205,1206"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
MvcResult mvcResult = mockMvc.perform(get("/projects/{projectCode}/instance/batch-delete", "cxc_1113")
|
||||
.header(SESSION_ID, sessionId)
|
||||
.param("processInstanceIds", "1205,1206"))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentType(MediaType.APPLICATION_JSON_UTF8))
|
||||
.andReturn();
|
||||
|
||||
Result result = JSONUtils.parseObject(mvcResult.getResponse().getContentAsString(), Result.class);
|
||||
Assert.assertNotNull(result);
|
||||
|
@ -109,24 +109,25 @@ public class ProcessInstanceServiceTest {
|
||||
UsersService usersService;
|
||||
|
||||
private String shellJson = "{\"globalParams\":[],\"tasks\":[{\"type\":\"SHELL\",\"id\":\"tasks-9527\",\"name\":\"shell-1\","
|
||||
+ "\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"#!/bin/bash\\necho \\\"shell-1\\\"\"},"
|
||||
+ "\"description\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval\":\"1\","
|
||||
+ "\"timeout\":{\"strategy\":\"\",\"interval\":1,\"enable\":false},\"taskInstancePriority\":\"MEDIUM\","
|
||||
+ "\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":1,\"timeout\":0}";
|
||||
+ "\"params\":{\"resourceList\":[],\"localParams\":[],\"rawScript\":\"#!/bin/bash\\necho \\\"shell-1\\\"\"},"
|
||||
+ "\"description\":\"\",\"runFlag\":\"NORMAL\",\"dependence\":{},\"maxRetryTimes\":\"0\",\"retryInterval\":\"1\","
|
||||
+ "\"timeout\":{\"strategy\":\"\",\"interval\":1,\"enable\":false},\"taskInstancePriority\":\"MEDIUM\","
|
||||
+ "\"workerGroupId\":-1,\"preTasks\":[]}],\"tenantId\":1,\"timeout\":0}";
|
||||
|
||||
@Test
|
||||
public void testQueryProcessInstanceList() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 46, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "test_user", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, "project_test1")).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 46, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "test_user", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
Date start = DateUtils.getScheduleDate("2020-01-01 00:00:00");
|
||||
@ -138,67 +139,67 @@ public class ProcessInstanceServiceTest {
|
||||
pageReturn.setRecords(processInstanceList);
|
||||
|
||||
// data parameter check
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processDefineMapper.selectById(Mockito.anyInt())).thenReturn(getProcessDefinition());
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class)
|
||||
, Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
|
||||
eq("192.168.xx.xx"), Mockito.any(), Mockito.any())).thenReturn(pageReturn);
|
||||
, Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any(),
|
||||
eq("192.168.xx.xx"), Mockito.any(), Mockito.any())).thenReturn(pageReturn);
|
||||
|
||||
Map<String, Object> dataParameterRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "20200101 00:00:00",
|
||||
"20200102 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Map<String, Object> dataParameterRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "20200101 00:00:00",
|
||||
"20200102 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.REQUEST_PARAMS_NOT_VALID_ERROR, dataParameterRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1L), eq(""), eq(-1), Mockito.any(),
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
|
||||
Map<String, Object> successRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Map<String, Object> successRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
|
||||
// data parameter empty
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1L), eq(""), eq(-1), Mockito.any(),
|
||||
eq("192.168.xx.xx"), eq(null), eq(null))).thenReturn(pageReturn);
|
||||
successRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "",
|
||||
"", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
eq("192.168.xx.xx"), eq(null), eq(null))).thenReturn(pageReturn);
|
||||
successRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "",
|
||||
"", "", loginUser.getUserName(), ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
|
||||
//executor null
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(null);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(-1);
|
||||
Map<String, Object> executorExistRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "admin", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Map<String, Object> executorExistRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "admin", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS, executorExistRes.get(Constants.STATUS));
|
||||
|
||||
//executor name empty
|
||||
when(processInstanceMapper.queryProcessInstanceListPaging(Mockito.any(Page.class), eq(project.getCode()), eq(1L), eq(""), eq(0), Mockito.any(),
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
Map<String, Object> executorEmptyRes = processInstanceService.queryProcessInstanceList(loginUser, projectName, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
eq("192.168.xx.xx"), eq(start), eq(end))).thenReturn(pageReturn);
|
||||
Map<String, Object> executorEmptyRes = processInstanceService.queryProcessInstanceList(loginUser, projectCode, 1, "2020-01-01 00:00:00",
|
||||
"2020-01-02 00:00:00", "", "", ExecutionStatus.SUBMITTED_SUCCESS,
|
||||
"192.168.xx.xx", 1, 10);
|
||||
Assert.assertEquals(Status.SUCCESS, executorEmptyRes.get(Constants.STATUS));
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryTopNLongestRunningProcessInstance() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>(5);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
int size = 10;
|
||||
String startTime = "2020-01-01 00:00:00";
|
||||
String endTime = "2020-08-02 00:00:00";
|
||||
@ -206,77 +207,76 @@ public class ProcessInstanceServiceTest {
|
||||
Date end = DateUtils.getScheduleDate(endTime);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectName, size, startTime, endTime);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectCode, size, startTime, endTime);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(usersService.queryUser(loginUser.getId())).thenReturn(loginUser);
|
||||
when(usersService.getUserIdByName(loginUser.getUserName())).thenReturn(loginUser.getId());
|
||||
when(usersService.queryUser(processInstance.getExecutorId())).thenReturn(loginUser);
|
||||
Map<String, Object> successRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectName, size, startTime, endTime);
|
||||
Map<String, Object> successRes = processInstanceService.queryTopNLongestRunningProcessInstance(loginUser, projectCode, size, startTime, endTime);
|
||||
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryProcessInstanceById() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessDefinition processDefinition = getProcessDefinition();
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(processInstance.getId())).thenReturn(processInstance);
|
||||
when(processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
Map<String, Object> successRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
Map<String, Object> successRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
|
||||
//worker group null
|
||||
Map<String, Object> workerNullRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
Map<String, Object> workerNullRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, workerNullRes.get(Constants.STATUS));
|
||||
|
||||
//worker group exist
|
||||
WorkerGroup workerGroup = getWorkGroup();
|
||||
Map<String, Object> workerExistRes = processInstanceService.queryProcessInstanceById(loginUser, projectName, 1);
|
||||
Map<String, Object> workerExistRes = processInstanceService.queryProcessInstanceById(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, workerExistRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryTaskListByProcessId() throws IOException {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTaskListByProcessId(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryTaskListByProcessId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//project auth success
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
processInstance.setState(ExecutionStatus.SUCCESS);
|
||||
TaskInstance taskInstance = new TaskInstance();
|
||||
@ -286,103 +286,107 @@ public class ProcessInstanceServiceTest {
|
||||
Result res = new Result();
|
||||
res.setCode(Status.SUCCESS.ordinal());
|
||||
res.setData("xxx");
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(processInstance.getId())).thenReturn(processInstance);
|
||||
when(processService.findValidTaskListByProcessId(processInstance.getId())).thenReturn(taskInstanceList);
|
||||
when(loggerService.queryLog(taskInstance.getId(), 0, 4098)).thenReturn(res);
|
||||
Map<String, Object> successRes = processInstanceService.queryTaskListByProcessId(loginUser, projectName, 1);
|
||||
Map<String, Object> successRes = processInstanceService.queryTaskListByProcessId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testParseLogForDependentResult() throws IOException {
|
||||
String logString = "[INFO] 2019-03-19 17:11:08.475 org.apache.dolphinscheduler.server.worker.log.TaskLogger:[172]"
|
||||
+ " - [taskAppId=TASK_223_10739_452334] dependent item complete :|| 223-ALL-day-last1Day,SUCCESS\n"
|
||||
+ "[INFO] 2019-03-19 17:11:08.476 org.apache.dolphinscheduler.server.worker.runner.TaskScheduleThread:[172]"
|
||||
+ " - task : 223_10739_452334 exit status code : 0\n"
|
||||
+ "[root@node2 current]# ";
|
||||
+ " - [taskAppId=TASK_223_10739_452334] dependent item complete :|| 223-ALL-day-last1Day,SUCCESS\n"
|
||||
+ "[INFO] 2019-03-19 17:11:08.476 org.apache.dolphinscheduler.server.worker.runner.TaskScheduleThread:[172]"
|
||||
+ " - task : 223_10739_452334 exit status code : 0\n"
|
||||
+ "[root@node2 current]# ";
|
||||
Map<String, DependResult> resultMap =
|
||||
processInstanceService.parseLogForDependentResult(logString);
|
||||
processInstanceService.parseLogForDependentResult(logString);
|
||||
Assert.assertEquals(1, resultMap.size());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQuerySubProcessInstanceByTaskId() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//task null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processService.findTaskInstanceById(1)).thenReturn(null);
|
||||
Map<String, Object> taskNullRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> taskNullRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_EXISTS, taskNullRes.get(Constants.STATUS));
|
||||
|
||||
//task not sub process
|
||||
TaskInstance taskInstance = getTaskInstance();
|
||||
taskInstance.setTaskType(TaskType.HTTP.getDesc());
|
||||
taskInstance.setProcessInstanceId(1);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findTaskInstanceById(1)).thenReturn(taskInstance);
|
||||
Map<String, Object> notSubprocessRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> notSubprocessRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.TASK_INSTANCE_NOT_SUB_WORKFLOW_INSTANCE, notSubprocessRes.get(Constants.STATUS));
|
||||
|
||||
//sub process not exist
|
||||
TaskInstance subTask = getTaskInstance();
|
||||
subTask.setTaskType(TaskType.SUB_PROCESS.getDesc());
|
||||
subTask.setProcessInstanceId(1);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findTaskInstanceById(subTask.getId())).thenReturn(subTask);
|
||||
when(processService.findSubProcessInstance(subTask.getProcessInstanceId(), subTask.getId())).thenReturn(null);
|
||||
Map<String, Object> subprocessNotExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> subprocessNotExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUB_PROCESS_INSTANCE_NOT_EXIST, subprocessNotExistRes.get(Constants.STATUS));
|
||||
|
||||
//sub process exist
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findSubProcessInstance(taskInstance.getProcessInstanceId(), taskInstance.getId())).thenReturn(processInstance);
|
||||
Map<String, Object> subprocessExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectName, 1);
|
||||
Map<String, Object> subprocessExistRes = processInstanceService.querySubProcessInstanceByTaskId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, subprocessExistRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testUpdateProcessInstance() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//process instance null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(null);
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_EXIST, processInstanceNullRes.get(Constants.STATUS));
|
||||
|
||||
//process instance not finish
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(processInstance);
|
||||
processInstance.setState(ExecutionStatus.RUNNING_EXECUTION);
|
||||
Map<String, Object> processInstanceNotFinishRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Map<String, Object> processInstanceNotFinishRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_STATE_OPERATION_ERROR, processInstanceNotFinishRes.get(Constants.STATUS));
|
||||
|
||||
//process instance finish
|
||||
@ -402,82 +406,79 @@ public class ProcessInstanceServiceTest {
|
||||
when(processService.updateProcessInstance(processInstance)).thenReturn(1);
|
||||
when(processDefinitionService.checkProcessNodeList(shellJson)).thenReturn(result);
|
||||
when(processService.findProcessDefinition(processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
|
||||
Map<String, Object> processInstanceFinishRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
processInstance.getProcessDefinitionVersion())).thenReturn(processDefinition);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Map<String, Object> processInstanceFinishRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Assert.assertEquals(Status.UPDATE_PROCESS_INSTANCE_ERROR, processInstanceFinishRes.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
when(processService.saveProcessDefinition(Mockito.any(), Mockito.any(),
|
||||
Mockito.anyString(), Mockito.anyString(), Mockito.anyString(),
|
||||
Mockito.any(), Mockito.any(), Mockito.anyBoolean())).thenReturn(1);
|
||||
Mockito.anyString(), Mockito.anyString(), Mockito.anyString(),
|
||||
Mockito.any(), Mockito.any(), Mockito.anyBoolean())).thenReturn(1);
|
||||
when(processService.findProcessDefinition(46L, 0)).thenReturn(processDefinition);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
|
||||
Map<String, Object> successRes = processInstanceService.updateProcessInstance(loginUser, projectName, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Map<String, Object> successRes = processInstanceService.updateProcessInstance(loginUser, projectCode, 1,
|
||||
shellJson, "2020-02-21 00:00:00", true, Flag.YES, "");
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testQueryParentInstanceBySubId() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
Map<String, Object> proejctAuthFailRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUNT, proejctAuthFailRes.get(Constants.STATUS));
|
||||
|
||||
//process instance null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> processInstanceNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_EXIST, processInstanceNullRes.get(Constants.STATUS));
|
||||
|
||||
//not sub process
|
||||
ProcessInstance processInstance = getProcessInstance();
|
||||
processInstance.setIsSubProcess(Flag.NO);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(processInstance);
|
||||
Map<String, Object> notSubProcessRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> notSubProcessRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.PROCESS_INSTANCE_NOT_SUB_PROCESS_INSTANCE, notSubProcessRes.get(Constants.STATUS));
|
||||
|
||||
//sub process
|
||||
processInstance.setIsSubProcess(Flag.YES);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findParentProcessInstance(1)).thenReturn(null);
|
||||
Map<String, Object> subProcessNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> subProcessNullRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUB_PROCESS_INSTANCE_NOT_EXIST, subProcessNullRes.get(Constants.STATUS));
|
||||
|
||||
//success
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(processService.findParentProcessInstance(1)).thenReturn(processInstance);
|
||||
Map<String, Object> successRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectName, 1);
|
||||
Map<String, Object> successRes = processInstanceService.queryParentInstanceBySubId(loginUser, projectCode, 1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDeleteProcessInstanceById() {
|
||||
String projectName = "project_test1";
|
||||
long projectCode = 1L;
|
||||
User loginUser = getAdminUser();
|
||||
Project project = getProject(projectCode);
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectName);
|
||||
|
||||
//project auth fail
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(null);
|
||||
when(projectService.checkProjectAndAuth(loginUser, null, projectName)).thenReturn(result);
|
||||
|
||||
putMsg(result, Status.PROJECT_NOT_FOUNT, projectCode);
|
||||
//process instance null
|
||||
Project project = getProject(projectName);
|
||||
putMsg(result, Status.SUCCESS, projectName);
|
||||
when(projectMapper.queryByName(projectName)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, projectName)).thenReturn(result);
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
when(projectMapper.queryByCode(projectCode)).thenReturn(project);
|
||||
when(projectService.checkProjectAndAuth(loginUser, project, project.getName())).thenReturn(result);
|
||||
when(processService.findProcessInstanceDetailById(1)).thenReturn(null);
|
||||
}
|
||||
|
||||
@ -503,8 +504,8 @@ public class ProcessInstanceServiceTest {
|
||||
taskInstance.setStartTime(new Date());
|
||||
when(processInstanceMapper.queryDetailById(1)).thenReturn(processInstance);
|
||||
when(processDefinitionLogMapper.queryByDefinitionCodeAndVersion(
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
processInstance.getProcessDefinitionCode(),
|
||||
processInstance.getProcessDefinitionVersion()
|
||||
)).thenReturn(new ProcessDefinitionLog());
|
||||
when(processInstanceMapper.queryDetailById(1)).thenReturn(processInstance);
|
||||
when(taskInstanceMapper.queryByInstanceIdAndName(Mockito.anyInt(), Mockito.any())).thenReturn(taskInstance);
|
||||
@ -514,7 +515,7 @@ public class ProcessInstanceServiceTest {
|
||||
}
|
||||
|
||||
when(processService.genDagGraph(Mockito.any(ProcessDefinition.class)))
|
||||
.thenReturn(graph);
|
||||
.thenReturn(graph);
|
||||
|
||||
Map<String, Object> successRes = processInstanceService.viewGantt(1);
|
||||
Assert.assertEquals(Status.SUCCESS, successRes.get(Constants.STATUS));
|
||||
@ -536,14 +537,14 @@ public class ProcessInstanceServiceTest {
|
||||
/**
|
||||
* get mock Project
|
||||
*
|
||||
* @param projectName projectName
|
||||
* @param projectCode projectCode
|
||||
* @return Project
|
||||
*/
|
||||
private Project getProject(String projectName) {
|
||||
private Project getProject(long projectCode) {
|
||||
Project project = new Project();
|
||||
project.setCode(1L);
|
||||
project.setCode(projectCode);
|
||||
project.setId(1);
|
||||
project.setName(projectName);
|
||||
project.setName("project_test1");
|
||||
project.setUserId(1);
|
||||
return project;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user