CP Workflow Definition Name Change Validation Optimization. (#11986)
This commit is contained in:
parent
2bdd0d9c6c
commit
c10deeeda6
|
|
@ -179,7 +179,8 @@ public class ProcessDefinitionController extends BaseController {
|
|||
*/
|
||||
@ApiOperation(value = "verify-name", notes = "VERIFY_PROCESS_DEFINITION_NAME_NOTES")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, type = "String")
|
||||
@ApiImplicitParam(name = "name", value = "PROCESS_DEFINITION_NAME", required = true, dataTypeClass = String.class),
|
||||
@ApiImplicitParam(name = "code", value = "PROCESS_DEFINITION_CODE", required = false, dataTypeClass = Long.class),
|
||||
})
|
||||
@GetMapping(value = "/verify-name")
|
||||
@ResponseStatus(HttpStatus.OK)
|
||||
|
|
@ -187,8 +188,9 @@ public class ProcessDefinitionController extends BaseController {
|
|||
@AccessLogAnnotation(ignoreRequestArgs = "loginUser")
|
||||
public Result verifyProcessDefinitionName(@ApiIgnore @RequestAttribute(value = Constants.SESSION_USER) User loginUser,
|
||||
@ApiParam(name = "projectCode", value = "PROJECT_CODE", required = true) @PathVariable long projectCode,
|
||||
@RequestParam(value = "name", required = true) String name) {
|
||||
Map<String, Object> result = processDefinitionService.verifyProcessDefinitionName(loginUser, projectCode, name);
|
||||
@RequestParam(value = "name", required = true) String name,
|
||||
@RequestParam(value = "code", required = false, defaultValue = "0") long processDefinitionCode) {
|
||||
Map<String, Object> result = processDefinitionService.verifyProcessDefinitionName(loginUser, projectCode, name, processDefinitionCode);
|
||||
return returnDataList(result);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ public class PythonGateway {
|
|||
* @param processDefinitionName process definition name
|
||||
*/
|
||||
private ProcessDefinition getProcessDefinition(User user, long projectCode, String processDefinitionName) {
|
||||
Map<String, Object> verifyProcessDefinitionExists = processDefinitionService.verifyProcessDefinitionName(user, projectCode, processDefinitionName);
|
||||
Map<String, Object> verifyProcessDefinitionExists = processDefinitionService.verifyProcessDefinitionName(user, projectCode, processDefinitionName, 0);
|
||||
Status verifyStatus = (Status) verifyProcessDefinitionExists.get(Constants.STATUS);
|
||||
|
||||
ProcessDefinition processDefinition = null;
|
||||
|
|
|
|||
|
|
@ -187,11 +187,13 @@ public interface ProcessDefinitionService {
|
|||
* @param loginUser login user
|
||||
* @param projectCode project code
|
||||
* @param name name
|
||||
* @param processDefinitionCode processDefinitionCode
|
||||
* @return true if process definition name not exists, otherwise false
|
||||
*/
|
||||
Map<String, Object> verifyProcessDefinitionName(User loginUser,
|
||||
long projectCode,
|
||||
String name);
|
||||
String name,
|
||||
long processDefinitionCode);
|
||||
|
||||
/**
|
||||
* delete process definition by code
|
||||
|
|
|
|||
|
|
@ -666,7 +666,7 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
|
|||
* @return true if process definition name not exists, otherwise false
|
||||
*/
|
||||
@Override
|
||||
public Map<String, Object> verifyProcessDefinitionName(User loginUser, long projectCode, String name) {
|
||||
public Map<String, Object> verifyProcessDefinitionName(User loginUser, long projectCode, String name, long processDefinitionCode) {
|
||||
Project project = projectMapper.queryByCode(projectCode);
|
||||
//check user access for project
|
||||
Map<String, Object> result = projectService.checkProjectAndAuth(loginUser, project, projectCode);
|
||||
|
|
@ -676,9 +676,13 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
|
|||
ProcessDefinition processDefinition = processDefinitionMapper.verifyByDefineName(project.getCode(), name.trim());
|
||||
if (processDefinition == null) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
putMsg(result, Status.PROCESS_DEFINITION_NAME_EXIST, name.trim());
|
||||
return result;
|
||||
}
|
||||
if (processDefinitionCode != 0 && processDefinitionCode == processDefinition.getCode()) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
return result;
|
||||
}
|
||||
putMsg(result, Status.PROCESS_DEFINITION_NAME_EXIST, name.trim());
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1126,8 +1130,9 @@ public class ProcessDefinitionServiceImpl extends BaseServiceImpl implements Pro
|
|||
// generate import processDefinitionName
|
||||
String processDefinitionName = recursionProcessDefinitionName(projectCode, processDefinition.getName(), 1);
|
||||
String importProcessDefinitionName = getNewName(processDefinitionName, IMPORT_SUFFIX);
|
||||
//unique check
|
||||
Map<String, Object> checkResult = verifyProcessDefinitionName(loginUser, projectCode, importProcessDefinitionName);
|
||||
// unique check
|
||||
Map<String, Object> checkResult =
|
||||
verifyProcessDefinitionName(loginUser, projectCode, importProcessDefinitionName, 0);
|
||||
if (Status.SUCCESS.equals(checkResult.get(Constants.STATUS))) {
|
||||
putMsg(result, Status.SUCCESS);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -127,9 +127,9 @@ public class ProcessDefinitionControllerTest {
|
|||
long projectCode = 1L;
|
||||
String name = "dag_test";
|
||||
|
||||
Mockito.when(processDefinitionService.verifyProcessDefinitionName(user, projectCode, name)).thenReturn(result);
|
||||
Mockito.when(processDefinitionService.verifyProcessDefinitionName(user, projectCode, name, 0)).thenReturn(result);
|
||||
|
||||
Result response = processDefinitionController.verifyProcessDefinitionName(user, projectCode, name);
|
||||
Result response = processDefinitionController.verifyProcessDefinitionName(user, projectCode, name, 0);
|
||||
Assert.assertTrue(response.isStatus(Status.PROCESS_DEFINITION_NAME_EXIST));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -485,20 +485,20 @@ public class ProcessDefinitionServiceTest {
|
|||
putMsg(result, Status.PROJECT_NOT_FOUND, projectCode);
|
||||
Mockito.when(projectService.checkProjectAndAuth(loginUser, project, projectCode)).thenReturn(result);
|
||||
Map<String, Object> map = processDefinitionService.verifyProcessDefinitionName(loginUser,
|
||||
projectCode, "test_pdf");
|
||||
projectCode, "test_pdf", 0);
|
||||
Assert.assertEquals(Status.PROJECT_NOT_FOUND, map.get(Constants.STATUS));
|
||||
|
||||
//project check auth success, process not exist
|
||||
putMsg(result, Status.SUCCESS, projectCode);
|
||||
Mockito.when(processDefineMapper.verifyByDefineName(project.getCode(), "test_pdf")).thenReturn(null);
|
||||
Map<String, Object> processNotExistRes = processDefinitionService.verifyProcessDefinitionName(loginUser,
|
||||
projectCode, "test_pdf");
|
||||
projectCode, "test_pdf", 0);
|
||||
Assert.assertEquals(Status.SUCCESS, processNotExistRes.get(Constants.STATUS));
|
||||
|
||||
//process exist
|
||||
Mockito.when(processDefineMapper.verifyByDefineName(project.getCode(), "test_pdf")).thenReturn(getProcessDefinition());
|
||||
Map<String, Object> processExistRes = processDefinitionService.verifyProcessDefinitionName(loginUser,
|
||||
projectCode, "test_pdf");
|
||||
projectCode, "test_pdf", 0);
|
||||
Assert.assertEquals(Status.PROCESS_DEFINITION_NAME_EXIST, processExistRes.get(Constants.STATUS));
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -137,9 +137,12 @@ export function querySimpleList(code: number): any {
|
|||
})
|
||||
}
|
||||
|
||||
export function verifyName(params: NameReq, code: number): any {
|
||||
export function verifyName(
|
||||
params: { name: string; workflowCode?: number },
|
||||
projectCode: number
|
||||
): any {
|
||||
return axios({
|
||||
url: `/projects/${code}/process-definition/verify-name`,
|
||||
url: `/projects/${projectCode}/process-definition/verify-name`,
|
||||
method: 'get',
|
||||
params
|
||||
})
|
||||
|
|
|
|||
|
|
@ -15,7 +15,15 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { defineComponent, PropType, ref, computed, onMounted, watch } from 'vue'
|
||||
import {
|
||||
defineComponent,
|
||||
PropType,
|
||||
ref,
|
||||
computed,
|
||||
onMounted,
|
||||
watch,
|
||||
getCurrentInstance
|
||||
} from 'vue'
|
||||
import Modal from '@/components/modal'
|
||||
import { useI18n } from 'vue-i18n'
|
||||
import {
|
||||
|
|
@ -136,8 +144,9 @@ export default defineComponent({
|
|||
formRef.value.validate(async (valid: any) => {
|
||||
if (!valid) {
|
||||
const params = {
|
||||
name: formValue.value.name
|
||||
}
|
||||
name: formValue.value.name,
|
||||
code: props.definition?.processDefinition.code
|
||||
} as { name: string; code?: number }
|
||||
if (
|
||||
props.definition?.processDefinition.name !== formValue.value.name
|
||||
) {
|
||||
|
|
@ -172,6 +181,8 @@ export default defineComponent({
|
|||
}
|
||||
}
|
||||
|
||||
const trim = getCurrentInstance()?.appContext.config.globalProperties.trim
|
||||
|
||||
onMounted(() => updateModalData())
|
||||
|
||||
watch(
|
||||
|
|
@ -189,10 +200,15 @@ export default defineComponent({
|
|||
>
|
||||
<NForm model={formValue.value} rules={rule} ref={formRef}>
|
||||
<NFormItem label={t('project.dag.workflow_name')} path='name'>
|
||||
<NInput v-model:value={formValue.value.name} class='input-name' />
|
||||
<NInput
|
||||
allowInput={trim}
|
||||
v-model:value={formValue.value.name}
|
||||
class='input-name'
|
||||
/>
|
||||
</NFormItem>
|
||||
<NFormItem label={t('project.dag.description')} path='description'>
|
||||
<NInput
|
||||
allowInput={trim}
|
||||
type='textarea'
|
||||
v-model:value={formValue.value.description}
|
||||
class='input-description'
|
||||
|
|
|
|||
Loading…
Reference in New Issue