From cba480c2e380faf3abc9c58f4a26ce64a1c059e9 Mon Sep 17 00:00:00 2001 From: linbangquan <1437892690@qq.com> Date: Fri, 22 Dec 2023 11:44:49 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BF=AE=E5=A4=8D]=20=E8=A1=A8=E5=8D=95?= =?UTF-8?q?=E7=BC=96=E8=BE=91-=E5=A4=8D=E5=88=B6=E7=9A=84=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=9C=BA=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 关联 #[1039835517648896]表单编辑-复制的表单无法修改默认场景 http://192.168.0.96:8090/demo/rdm.html#/bug-detail/939050947543040/939050947543057/1039835517648896 --- .../module/tenant/api/form/FormCopyApi.java | 148 ++++++++++-------- .../module/tenant/api/form/FormDeleteApi.java | 25 ++- .../FormDependencyTableDataUpdateApi.java | 67 ++++++++ .../module/tenant/api/form/FormSaveApi.java | 42 ++--- .../tenant/api/form/FormVersionDeleteApi.java | 27 +--- 5 files changed, 181 insertions(+), 128 deletions(-) create mode 100644 src/main/java/neatlogic/module/tenant/api/form/FormDependencyTableDataUpdateApi.java diff --git a/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java b/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java index 440e84c4..284348b4 100644 --- a/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java +++ b/src/main/java/neatlogic/module/tenant/api/form/FormCopyApi.java @@ -30,6 +30,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Comparator; import java.util.List; @Service @@ -48,7 +50,7 @@ public class FormCopyApi extends PrivateApiComponentBase { @Override public String getName() { - return "表单复制接口"; + return "nmtaf.formcopyapi.getname"; } @Override @@ -57,16 +59,25 @@ public class FormCopyApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "uuid", type = ApiParamType.STRING, isRequired = true, desc = "表单uuid"), - @Param(name = "name", type = ApiParamType.REGEX, rule = RegexUtils.NAME, isRequired = true, maxLength = 50, desc = "表单名称"), - @Param(name = "currentVersionUuid", type = ApiParamType.STRING, desc = "要复制的版本uuid,空表示复制所有版本") + @Param(name = "uuid", type = ApiParamType.STRING, isRequired = true, desc = "common.uuid"), + @Param(name = "name", type = ApiParamType.REGEX, rule = RegexUtils.NAME, isRequired = true, maxLength = 50, desc = "common.name"), + @Param(name = "currentVersionUuid", type = ApiParamType.STRING, desc = "common.versionuuid", help = "要复制的版本uuid,空表示复制所有版本") }) @Output({ - @Param(name = "Return", explode = FormVo.class, desc = "新表单信息") + @Param(name = "Return", explode = FormVo.class, desc = "common.tbodylist") }) - @Description(desc = "表单复制接口") + @Description(desc = "nmtaf.formcopyapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { + FormVo newFrom = new FormVo(); + String name = jsonObj.getString("name"); + newFrom.setName(name); + //如果表单名称已存在 + if (formMapper.checkFormNameIsRepeat(newFrom) > 0) { + throw new FormNameRepeatException(name); + } + // 收集要复制的版本 + List newFormVersionList = new ArrayList<>(); String uuid = jsonObj.getString("uuid"); String currentVersionUuid = jsonObj.getString("currentVersionUuid"); if (StringUtils.isNotBlank(currentVersionUuid)) { @@ -78,49 +89,49 @@ public class FormCopyApi extends PrivateApiComponentBase { if (formVo == null) { throw new FormNotFoundException(formVersionVo.getFormUuid()); } - formVo.setUuid(null); - String newFormUuid = formVo.getUuid(); - - String oldName = formVo.getName(); - String name = jsonObj.getString("name"); - formVo.setName(name); - //如果表单名称已存在 - if (formMapper.checkFormNameIsRepeat(formVo) > 0) { - throw new FormNameRepeatException(name); - } - formMapper.insertForm(formVo); - formVersionVo.setVersion(1); - saveFormVersion(formVersionVo, newFormUuid, oldName, name); - formVo.setCurrentVersion(formVersionVo.getVersion()); - formVo.setCurrentVersionUuid(formVersionVo.getUuid()); - return formVo; + newFrom.setIsActive(formVo.getIsActive()); + newFormVersionList.add(copyFormVersion(formVersionVo, newFrom.getUuid())); } else if(StringUtils.isNotBlank(uuid)) { FormVo formVo = formMapper.getFormByUuid(uuid); if (formVo == null) { throw new FormNotFoundException(uuid); } - formVo.setUuid(null); - String newFormUuid = formVo.getUuid(); - String oldName = formVo.getName(); - String name = jsonObj.getString("name"); - formVo.setName(name); - //如果表单名称已存在 - if (formMapper.checkFormNameIsRepeat(formVo) > 0) { - throw new FormNameRepeatException(name); - } - formMapper.insertForm(formVo); + newFrom.setIsActive(formVo.getIsActive()); List formVersionList = formMapper.getFormVersionByFormUuid(uuid); for (FormVersionVo formVersionVo : formVersionList) { - saveFormVersion(formVersionVo, newFormUuid, oldName, name); - if (formVersionVo.getIsActive().equals(1)) { - formVo.setCurrentVersion(formVersionVo.getVersion()); - formVo.setCurrentVersionUuid(formVersionVo.getUuid()); - } + newFormVersionList.add(copyFormVersion(formVersionVo, newFrom.getUuid())); } - return formVo; } else { throw new ParamNotExistsException("uuid", "currentVersionUuid"); } + // 插入表单 + formMapper.insertForm(newFrom); + // 重新生成版本号 + if (newFormVersionList.size() == 1) { + newFormVersionList.get(0).setVersion(1); + } else { + newFormVersionList.sort(Comparator.comparing(FormVersionVo::getVersion)); + for (int i = 0; i < newFormVersionList.size(); i++) { + newFormVersionList.get(i).setVersion(i); + } + } + IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); + // 遍历要复制的版本列表 + for (FormVersionVo formVersionVo : newFormVersionList) { + // 插入表单版本 + formMapper.insertFormVersion(formVersionVo); + // 保存依赖 + formCrossoverService.saveDependency(formVersionVo); + if (formVersionVo.getIsActive().equals(1)) { + newFrom.setCurrentVersion(formVersionVo.getVersion()); + newFrom.setCurrentVersionUuid(formVersionVo.getUuid()); + // 对应激活版本需要插入表单属性 + for (FormAttributeVo formAttributeVo : formVersionVo.getFormAttributeList()) { + formMapper.insertFormAttribute(formAttributeVo); + } + } + } + return newFrom; } public IValid name() { @@ -133,43 +144,48 @@ public class FormCopyApi extends PrivateApiComponentBase { }; } - private void saveFormVersion(FormVersionVo formVersionVo, String newFormUuid, String oldName, String newName) { - JSONObject formConfig = formVersionVo.getFormConfig(); + /** + * 复制一份表单版本配置信息,需要将所有属性的uuid值重新生成,避免不同版本的属性uuid冲突 + * @param oldFormVersionVo + * @param newFormUuid + * @return + */ + private FormVersionVo copyFormVersion(FormVersionVo oldFormVersionVo, String newFormUuid) { + JSONObject formConfig = oldFormVersionVo.getFormConfig(); // 更新各种唯一标识uuid,防止不同表单版本之间唯一标识uuid相同 // 更新场景uuid - formConfig.put("uuid", UuidUtil.randomUuid()); + String defaultSceneUuid = formConfig.getString("defaultSceneUuid"); JSONArray sceneList = formConfig.getJSONArray("sceneList"); if (CollectionUtils.isNotEmpty(sceneList)) { for (int i = 0; i < sceneList.size(); i++) { JSONObject scene = sceneList.getJSONObject(i); - scene.put("uuid", UuidUtil.randomUuid()); + String uuid = scene.getString("uuid"); + String newUuid = UuidUtil.randomUuid(); + scene.put("uuid", newUuid); + if (Objects.equal(uuid, defaultSceneUuid)) { + formConfig.put("defaultSceneUuid", newUuid); + } } } + String uuid = formConfig.getString("uuid"); + String newUuid = UuidUtil.randomUuid(); + formConfig.put("uuid", newUuid); + if (Objects.equal(uuid, defaultSceneUuid)) { + formConfig.put("defaultSceneUuid", newUuid); + } + String content = formConfig.toJSONString(); - // 更新表单uuid - content = content.replace(formVersionVo.getFormUuid(), newFormUuid); - // 更新表单名称 - content = content.replace(oldName, newName); - List formAttributeList = formVersionVo.getFormAttributeList(); - if (CollectionUtils.isNotEmpty(formAttributeList)) { - IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); - for (FormAttributeVo formAttributeVo : formAttributeList) { - // 更新表单属性uuid - content = content.replace(formAttributeVo.getUuid(), UuidUtil.randomUuid()); - } - formVersionVo.setUuid(null); - formVersionVo.setFormUuid(newFormUuid); - formVersionVo.setFormConfig(JSONObject.parseObject(content)); - formMapper.insertFormVersion(formVersionVo); - formVersionVo.setFormAttributeList(null); - formAttributeList = formVersionVo.getFormAttributeList(); - for (FormAttributeVo formAttributeVo : formAttributeList) { - //保存激活版本时,插入表单属性信息 - if (Objects.equal(formVersionVo.getIsActive(), 1)) { - formMapper.insertFormAttribute(formAttributeVo); - } - formCrossoverService.saveDependency(formAttributeVo); - } + IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); + List allFormAttributeList = formCrossoverService.getAllFormAttributeList(formConfig); + for (FormAttributeVo formAttributeVo : allFormAttributeList) { + // 更新表单属性uuid + content = content.replace(formAttributeVo.getUuid(), UuidUtil.randomUuid()); } + FormVersionVo formVersionVo = new FormVersionVo(); + formVersionVo.setVersion(oldFormVersionVo.getVersion()); + formVersionVo.setIsActive(oldFormVersionVo.getIsActive()); + formVersionVo.setFormUuid(newFormUuid); + formVersionVo.setFormConfig(JSONObject.parseObject(content)); + return formVersionVo; } } diff --git a/src/main/java/neatlogic/module/tenant/api/form/FormDeleteApi.java b/src/main/java/neatlogic/module/tenant/api/form/FormDeleteApi.java index 40515e28..42329408 100644 --- a/src/main/java/neatlogic/module/tenant/api/form/FormDeleteApi.java +++ b/src/main/java/neatlogic/module/tenant/api/form/FormDeleteApi.java @@ -1,20 +1,19 @@ package neatlogic.module.tenant.api.form; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.FORM_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; +import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.dependency.constvalue.FrameworkFromType; import neatlogic.framework.dependency.core.DependencyManager; import neatlogic.framework.form.dao.mapper.FormMapper; -import neatlogic.framework.form.dto.FormAttributeVo; import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.form.exception.FormReferencedCannotBeDeletedException; +import neatlogic.framework.form.service.IFormCrossoverService; import neatlogic.framework.restful.annotation.*; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; -import neatlogic.module.framework.dependency.handler.Integration2FormAttrDependencyHandler; -import neatlogic.module.framework.dependency.handler.MatrixAttr2FormAttrDependencyHandler; -import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -38,7 +37,7 @@ public class FormDeleteApi extends PrivateApiComponentBase { @Override public String getName() { - return "表单删除接口"; + return "nmtaf.formdeleteapi.getname"; } @Override @@ -47,12 +46,12 @@ public class FormDeleteApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "uuid", type = ApiParamType.STRING, isRequired = true, desc = "表单uuid") + @Param(name = "uuid", type = ApiParamType.STRING, isRequired = true, desc = "common.uuid") }) @Output({ - @Param(name = "uuid", type = ApiParamType.STRING, desc = "表单uuid") + @Param(name = "uuid", type = ApiParamType.STRING, desc = "common.uuid") }) - @Description(desc = "表单删除接口") + @Description(desc = "nmtaf.formdeleteapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { String uuid = jsonObj.getString("uuid"); @@ -63,15 +62,9 @@ public class FormDeleteApi extends PrivateApiComponentBase { } List formVersionList = formMapper.getFormVersionByFormUuid(uuid); if (CollectionUtils.isNotEmpty(formVersionList)) { + IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); for (FormVersionVo formVersionVo : formVersionList) { - formMapper.deleteFormAttributeMatrixByFormVersionUuid(formVersionVo.getUuid()); - List formAttributeList = formVersionVo.getFormAttributeList(); - if (CollectionUtils.isNotEmpty(formAttributeList)) { - for (FormAttributeVo formAttributeVo : formAttributeList) { - DependencyManager.delete(MatrixAttr2FormAttrDependencyHandler.class, formAttributeVo.getUuid()); - DependencyManager.delete(Integration2FormAttrDependencyHandler.class, formAttributeVo.getUuid()); - } - } + formCrossoverService.deleteDependency(formVersionVo); } } formMapper.deleteFormByUuid(uuid); diff --git a/src/main/java/neatlogic/module/tenant/api/form/FormDependencyTableDataUpdateApi.java b/src/main/java/neatlogic/module/tenant/api/form/FormDependencyTableDataUpdateApi.java new file mode 100644 index 00000000..2b709ddb --- /dev/null +++ b/src/main/java/neatlogic/module/tenant/api/form/FormDependencyTableDataUpdateApi.java @@ -0,0 +1,67 @@ +package neatlogic.module.tenant.api.form; + +import com.alibaba.fastjson.JSONObject; +import neatlogic.framework.auth.core.AuthAction; +import neatlogic.framework.auth.label.FORM_MODIFY; +import neatlogic.framework.common.dto.BasePageVo; +import neatlogic.framework.dependency.core.DependencyManager; +import neatlogic.framework.form.dao.mapper.FormMapper; +import neatlogic.framework.restful.annotation.Description; +import neatlogic.framework.restful.annotation.Input; +import neatlogic.framework.restful.annotation.OperationType; +import neatlogic.framework.restful.annotation.Output; +import neatlogic.framework.restful.constvalue.OperationTypeEnum; +import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; +import neatlogic.module.framework.dependency.handler.Matrix2FormAttributeDependencyHandler; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; +import java.util.Map; + +@Service +@OperationType(type = OperationTypeEnum.UPDATE) +@AuthAction(action = FORM_MODIFY.class) +public class FormDependencyTableDataUpdateApi extends PrivateApiComponentBase { + + @Resource + private FormMapper formMapper; + + + @Override + public String getName() { + return "nmtaf.formdependencytabledataupdateapi.getname"; + } + + @Input({}) + @Output({}) + @Description(desc = "nmtaf.formdependencytabledataupdateapi.getname") + @Override + public Object myDoService(JSONObject paramObj) throws Exception { + JSONObject resultObj = new JSONObject(); + int rowNum = formMapper.getFormAttributeMatrixCount(); + resultObj.put("rowNum", rowNum); + if (rowNum == 0) { + return null; + } + BasePageVo searchVo = new BasePageVo(); + searchVo.setRowNum(rowNum); + searchVo.setPageSize(100); + int pageCount = searchVo.getPageCount(); + for (int currentPage = 1; currentPage <= pageCount; currentPage++) { + searchVo.setCurrentPage(currentPage); + List> formAttributeMatrixList = formMapper.getFormAttributeMatrixList(searchVo); + for (Map formAttributeMatrix : formAttributeMatrixList) { + JSONObject dependencyConfig = new JSONObject(); + dependencyConfig.put("formVersionUuid", formAttributeMatrix.get("formVersionUuid")); + DependencyManager.insert(Matrix2FormAttributeDependencyHandler.class, formAttributeMatrix.get("matrixUuid"), formAttributeMatrix.get("formAttributeUuid"), dependencyConfig); + } + } + return resultObj; + } + + @Override + public String getToken() { + return "form/dependency/data/update"; + } +} diff --git a/src/main/java/neatlogic/module/tenant/api/form/FormSaveApi.java b/src/main/java/neatlogic/module/tenant/api/form/FormSaveApi.java index 889f0b93..c16ef905 100644 --- a/src/main/java/neatlogic/module/tenant/api/form/FormSaveApi.java +++ b/src/main/java/neatlogic/module/tenant/api/form/FormSaveApi.java @@ -1,10 +1,10 @@ package neatlogic.module.tenant.api.form; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.FORM_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; import neatlogic.framework.crossover.CrossoverServiceFactory; -import neatlogic.framework.dependency.core.DependencyManager; import neatlogic.framework.dto.FieldValidResultVo; import neatlogic.framework.form.dao.mapper.FormMapper; import neatlogic.framework.form.dto.FormAttributeVo; @@ -20,9 +20,6 @@ import neatlogic.framework.restful.core.IValid; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; import neatlogic.framework.util.RegexUtils; import neatlogic.framework.util.UuidUtil; -import neatlogic.module.framework.dependency.handler.Integration2FormAttrDependencyHandler; -import neatlogic.module.framework.dependency.handler.MatrixAttr2FormAttrDependencyHandler; -import com.alibaba.fastjson.JSONObject; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; @@ -50,7 +47,7 @@ public class FormSaveApi extends PrivateApiComponentBase { @Override public String getName() { - return "表单保存接口"; + return "nmtaf.formsaveapi.getname"; } @Override @@ -60,16 +57,16 @@ public class FormSaveApi extends PrivateApiComponentBase { @Override @Input({ - @Param(name = "uuid", type = ApiParamType.STRING, desc = "表单uuid", isRequired = true), - @Param(name = "name", type = ApiParamType.REGEX, rule = RegexUtils.NAME, isRequired = true, maxLength = 50, desc = "表单名称"), - @Param(name = "currentVersionUuid", type = ApiParamType.STRING, desc = "当前版本的uuid,为空代表创建一个新版本", isRequired = false), - @Param(name = "formConfig", type = ApiParamType.JSONOBJECT, desc = "表单控件生成的json内容", isRequired = true) + @Param(name = "uuid", type = ApiParamType.STRING, desc = "common.uuid", isRequired = true), + @Param(name = "name", type = ApiParamType.REGEX, rule = RegexUtils.NAME, isRequired = true, maxLength = 50, desc = "common.name"), + @Param(name = "currentVersionUuid", type = ApiParamType.STRING, desc = "common.versionuuid", help = "当前版本的uuid,为空代表创建一个新版本"), + @Param(name = "formConfig", type = ApiParamType.JSONOBJECT, desc = "common.config", isRequired = true) }) @Output({ - @Param(name = "uuid", type = ApiParamType.STRING, desc = "表单uuid"), - @Param(name = "formVersionUuid", type = ApiParamType.STRING, desc = "表单版本uuid") + @Param(name = "uuid", type = ApiParamType.STRING, desc = "common.uuid"), + @Param(name = "formVersionUuid", type = ApiParamType.STRING, desc = "common.versionuuid") }) - @Description(desc = "表单保存接口") + @Description(desc = "nmtaf.formsaveapi.getname") public Object myDoService(JSONObject jsonObj) throws Exception { JSONObject resultObj = new JSONObject(); FormVo formVo = jsonObj.toJavaObject(FormVo.class); @@ -80,6 +77,7 @@ public class FormSaveApi extends PrivateApiComponentBase { boolean updateFormConfig = true; boolean formIsExists = false; Integer oldFormVersionIsActive = 0; + IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); FormVo oldFormVo = formMapper.getFormByUuid(formUuid); if (oldFormVo != null) { formIsExists = true; @@ -97,14 +95,7 @@ public class FormSaveApi extends PrivateApiComponentBase { if (Objects.equals(oldFormVersionVo.getFormConfig(), formVo.getFormConfig())) { updateFormConfig = false; } else { - formMapper.deleteFormAttributeMatrixByFormVersionUuid(currentVersionUuid); - List formAttributeList = oldFormVersionVo.getFormAttributeList(); - if (CollectionUtils.isNotEmpty(formAttributeList)) { - for (FormAttributeVo formAttributeVo : formAttributeList) { - DependencyManager.delete(MatrixAttr2FormAttrDependencyHandler.class, formAttributeVo.getUuid()); - DependencyManager.delete(Integration2FormAttrDependencyHandler.class, formAttributeVo.getUuid()); - } - } + formCrossoverService.deleteDependency(oldFormVersionVo); } } } @@ -183,18 +174,15 @@ public class FormSaveApi extends PrivateApiComponentBase { } else { formMapper.updateFormVersion(formVersionVo); } + formCrossoverService.saveDependency(formVersionVo); //保存激活版本时,更新表单属性信息 if (Objects.equals(formVersionVo.getIsActive(), 1)) { formMapper.deleteFormAttributeByFormUuid(formUuid); - } - if (CollectionUtils.isNotEmpty(formAttributeList)) { - IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); - for (FormAttributeVo formAttributeVo : formAttributeList) { - //保存激活版本时,更新表单属性信息 - if (Objects.equals(formVersionVo.getIsActive(), 1)) { + if (CollectionUtils.isNotEmpty(formAttributeList)) { + for (FormAttributeVo formAttributeVo : formAttributeList) { + //保存激活版本时,更新表单属性信息 formMapper.insertFormAttribute(formAttributeVo); } - formCrossoverService.saveDependency(formAttributeVo); } } return resultObj; diff --git a/src/main/java/neatlogic/module/tenant/api/form/FormVersionDeleteApi.java b/src/main/java/neatlogic/module/tenant/api/form/FormVersionDeleteApi.java index aaeccbe8..9d855135 100644 --- a/src/main/java/neatlogic/module/tenant/api/form/FormVersionDeleteApi.java +++ b/src/main/java/neatlogic/module/tenant/api/form/FormVersionDeleteApi.java @@ -1,29 +1,24 @@ package neatlogic.module.tenant.api.form; +import com.alibaba.fastjson.JSONObject; import neatlogic.framework.auth.core.AuthAction; import neatlogic.framework.auth.label.FORM_MODIFY; import neatlogic.framework.common.constvalue.ApiParamType; -import neatlogic.framework.dependency.core.DependencyManager; +import neatlogic.framework.crossover.CrossoverServiceFactory; import neatlogic.framework.form.dao.mapper.FormMapper; -import neatlogic.framework.form.dto.FormAttributeVo; import neatlogic.framework.form.dto.FormVersionVo; import neatlogic.framework.form.exception.FormActiveVersionCannotBeDeletedException; import neatlogic.framework.form.exception.FormVersionNotFoundException; +import neatlogic.framework.form.service.IFormCrossoverService; import neatlogic.framework.restful.annotation.Description; import neatlogic.framework.restful.annotation.Input; import neatlogic.framework.restful.annotation.OperationType; import neatlogic.framework.restful.annotation.Param; import neatlogic.framework.restful.constvalue.OperationTypeEnum; import neatlogic.framework.restful.core.privateapi.PrivateApiComponentBase; -import neatlogic.module.framework.dependency.handler.Integration2FormAttrDependencyHandler; -import neatlogic.module.framework.dependency.handler.MatrixAttr2FormAttrDependencyHandler; -import com.alibaba.fastjson.JSONObject; -import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; - @Service @OperationType(type = OperationTypeEnum.DELETE) @AuthAction(action = FORM_MODIFY.class) @@ -39,7 +34,7 @@ public class FormVersionDeleteApi extends PrivateApiComponentBase { @Override public String getName() { - return "表单版本删除接口"; + return "nmtaf.formversiondeleteapi.getname"; } @Override @@ -48,9 +43,9 @@ public class FormVersionDeleteApi extends PrivateApiComponentBase { } @Input({ - @Param(name = "uuid", type = ApiParamType.STRING, isRequired = true, desc = "表单版本uuid") + @Param(name = "uuid", type = ApiParamType.STRING, isRequired = true, desc = "common.uuid") }) - @Description(desc = "表单版本删除接口") + @Description(desc = "nmtaf.formversiondeleteapi.getname") @Override public Object myDoService(JSONObject jsonObj) throws Exception { String uuid = jsonObj.getString("uuid"); @@ -63,14 +58,8 @@ public class FormVersionDeleteApi extends PrivateApiComponentBase { } //删除表单版本 formMapper.deleteFormVersionByUuid(uuid); - formMapper.deleteFormAttributeMatrixByFormVersionUuid(uuid); - List formAttributeList = formVersion.getFormAttributeList(); - if (CollectionUtils.isNotEmpty(formAttributeList)) { - for (FormAttributeVo formAttributeVo : formAttributeList) { - DependencyManager.delete(MatrixAttr2FormAttrDependencyHandler.class, formAttributeVo.getUuid()); - DependencyManager.delete(Integration2FormAttrDependencyHandler.class, formAttributeVo.getUuid()); - } - } + IFormCrossoverService formCrossoverService = CrossoverServiceFactory.getApi(IFormCrossoverService.class); + formCrossoverService.deleteDependency(formVersion); return null; } -- Gitee