From da563a9d7862cfc395ce691840f1210b0db3a129 Mon Sep 17 00:00:00 2001 From: shenshang Date: Sun, 25 Jun 2023 16:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=AD=97=E5=85=B8=E7=9B=B8?= =?UTF-8?q?=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/entity/SystemDictDataDO.java | 2 + .../core/service/BpmCategoryService.java | 35 +++++++++++ .../converter/BpmCategoryConverter.java | 24 ++++++++ .../service/converter/EntityConverter.java | 10 +++ .../request/model/BpmCategoryBpmPageDTO.java | 16 +++++ .../request/model/BpmCategoryCreateDTO.java | 25 ++++++++ .../request/model/BpmCategoryUpdateDTO.java | 29 +++++++++ .../dto/response/model/BpmCategoryItemVo.java | 23 +++++++ .../service/impl/BpmCategoryServiceImpl.java | 61 +++++++++++++++++++ .../src/main/resources/sql/bpm-busines.sql | 0 10 files changed, 225 insertions(+) create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmCategoryConverter.java create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/EntityConverter.java create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryBpmPageDTO.java create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryCreateDTO.java create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryUpdateDTO.java create mode 100644 workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/model/BpmCategoryItemVo.java rename {workflow-engine-server => workflow-engine-core}/src/main/resources/sql/bpm-busines.sql (100%) diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/SystemDictDataDO.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/SystemDictDataDO.java index 2f14d2907..75c6acd77 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/SystemDictDataDO.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/repository/entity/SystemDictDataDO.java @@ -32,6 +32,8 @@ public class SystemDictDataDO extends BpmBaseDO{ /** css 样式 */ private String cssClass; + /**备注*/ + private String remark; /** 状态(0正常 1停用) */ private String status; diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmCategoryService.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmCategoryService.java index fd9fe3862..33ea10018 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmCategoryService.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/BpmCategoryService.java @@ -1,8 +1,43 @@ package cn.axzo.workflow.core.service; +import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryBpmPageDTO; +import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryCreateDTO; +import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryUpdateDTO; +import cn.axzo.workflow.core.service.dto.response.model.BpmCategoryItemVo; + +import java.util.List; + /** * Category的增删改查 */ public interface BpmCategoryService { + + /** + * 创建 + * @param createDTO + * @return + */ + int createBpmCategory(BpmCategoryCreateDTO createDTO); + + /** + * 修改 + * @param createDTO + * @return + */ + int updateBpmCategory(BpmCategoryUpdateDTO createDTO); + + /** + * 删除 + * @param id + * @return + */ + int deleteBpmCategory(Long id); + + /** + * 查询 + * @param findDTO + * @return + */ + List findBpmCategory(BpmCategoryBpmPageDTO findDTO); } diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmCategoryConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmCategoryConverter.java new file mode 100644 index 000000000..ded2fb582 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/BpmCategoryConverter.java @@ -0,0 +1,24 @@ +package cn.axzo.workflow.core.service.converter; + +import cn.axzo.workflow.core.repository.entity.SystemDictDataDO; +import cn.axzo.workflow.core.service.dto.response.model.BpmCategoryItemVo; +import org.mapstruct.Mapper; +import org.mapstruct.Mapping; + +import java.util.Arrays; + +import static org.mapstruct.NullValueCheckStrategy.ALWAYS; + +@Mapper( + componentModel = "spring", + nullValueCheckStrategy = ALWAYS, + imports = Arrays.class +) +public interface BpmCategoryConverter extends EntityConverter{ + + @Mapping(target = "id", source = "category.id") + @Mapping(target = "dictType", source = "category.dictType") + @Mapping(target = "label", source = "category.label") + @Mapping(target = "value", source = "category.value") + BpmCategoryItemVo toVo(SystemDictDataDO category); +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/EntityConverter.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/EntityConverter.java new file mode 100644 index 000000000..cb619ee02 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/converter/EntityConverter.java @@ -0,0 +1,10 @@ +package cn.axzo.workflow.core.service.converter; + +import java.util.List; + +public interface EntityConverter{ + + V toVo(E var); + + List toVo(List var); +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryBpmPageDTO.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryBpmPageDTO.java new file mode 100644 index 000000000..69a44cf0c --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryBpmPageDTO.java @@ -0,0 +1,16 @@ +package cn.axzo.workflow.core.service.dto.request.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BpmCategoryBpmPageDTO { + @ApiModelProperty(value = "字典类型", example = "process_yudao", notes = "精准匹配") + private String dictType; + + @ApiModelProperty(value = "字典标签", example = "process_yudao", hidden = true) + private String label; + + @ApiModelProperty(value = "字典值", example = "process_yudao", hidden = true) + private String value; +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryCreateDTO.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryCreateDTO.java new file mode 100644 index 000000000..938732443 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryCreateDTO.java @@ -0,0 +1,25 @@ +package cn.axzo.workflow.core.service.dto.request.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +@Data +public class BpmCategoryCreateDTO { + + @ApiModelProperty(value = "字典标签", example = "process_yudao", hidden = true) + @Length(max = 50, message = "字典标签最长只支持255个字符") + @NotBlank(message = "字典标签表示不能为空") + private String label; + + @ApiModelProperty(value = "流程模型标识", example = "process_yudao", hidden = true) + @Length(max = 50, message = "字典值最长只支持50个字符") + @NotBlank(message = "字典值表示不能为空") + private String value; + + @ApiModelProperty(value = "备注", example = "process_yudao", hidden = true) + @Length(max = 250, message = "备注最长只支持250个字符") + private String remark; +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryUpdateDTO.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryUpdateDTO.java new file mode 100644 index 000000000..1b7bd76d0 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/request/model/BpmCategoryUpdateDTO.java @@ -0,0 +1,29 @@ +package cn.axzo.workflow.core.service.dto.request.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +@Data +public class BpmCategoryUpdateDTO { + + @ApiModelProperty(value = "ID", example = "process_yudao", hidden = true) + @NotBlank(message = "字典标签表示不能为空") + private Long id; + + @ApiModelProperty(value = "字典标签", example = "process_yudao", hidden = true) + @Length(max = 50, message = "字典标签最长只支持255个字符") + @NotBlank(message = "字典标签表示不能为空") + private String label; + + @ApiModelProperty(value = "流程模型标识", example = "process_yudao", hidden = true) + @Length(max = 50, message = "字典值最长只支持50个字符") + @NotBlank(message = "字典值表示不能为空") + private String value; + + @ApiModelProperty(value = "备注", example = "process_yudao", hidden = true) + @Length(max = 250, message = "备注最长只支持250个字符") + private String remark; +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/model/BpmCategoryItemVo.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/model/BpmCategoryItemVo.java new file mode 100644 index 000000000..3db78e849 --- /dev/null +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/dto/response/model/BpmCategoryItemVo.java @@ -0,0 +1,23 @@ +package cn.axzo.workflow.core.service.dto.response.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class BpmCategoryItemVo { + + @ApiModelProperty(value = "ID", required = true) + private Long id; + + @ApiModelProperty(value = "字典type", required = true) + private String dictType; + + @ApiModelProperty(value = "标签名", required = true) + private String label; + + @ApiModelProperty(value = "值", required = true) + private String value; + + @ApiModelProperty(value = "备注", required = true) + private String remark; +} diff --git a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmCategoryServiceImpl.java b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmCategoryServiceImpl.java index 10e34fb76..6d1f021b9 100644 --- a/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmCategoryServiceImpl.java +++ b/workflow-engine-core/src/main/java/cn/axzo/workflow/core/service/impl/BpmCategoryServiceImpl.java @@ -1,8 +1,69 @@ package cn.axzo.workflow.core.service.impl; +import cn.axzo.workflow.core.repository.entity.SystemDictDataDO; +import cn.axzo.workflow.core.repository.mapper.SystemDictDataMapper; import cn.axzo.workflow.core.service.BpmCategoryService; +import cn.axzo.workflow.core.service.converter.BpmCategoryConverter; +import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryBpmPageDTO; +import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryCreateDTO; +import cn.axzo.workflow.core.service.dto.request.model.BpmCategoryUpdateDTO; +import cn.axzo.workflow.core.service.dto.response.model.BpmCategoryItemVo; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + @Service +@RequiredArgsConstructor +@Slf4j public class BpmCategoryServiceImpl implements BpmCategoryService { + @Resource + private SystemDictDataMapper systemDictDataMapper; + + private final BpmCategoryConverter bpmCategoryConverter; + + @Override + public int createBpmCategory(BpmCategoryCreateDTO createDTO) { + SystemDictDataDO systemDictDataDO=new SystemDictDataDO(); + systemDictDataDO.setDictType("bpm_model_category"); + systemDictDataDO.setLabel(createDTO.getLabel()); + systemDictDataDO.setValue(createDTO.getValue()); + systemDictDataDO.setRemark(createDTO.getRemark()); + return systemDictDataMapper.insert(systemDictDataDO); + } + + @Override + public int updateBpmCategory(BpmCategoryUpdateDTO createDTO) { + SystemDictDataDO systemDictDataDO=new SystemDictDataDO(); + systemDictDataDO.setId(createDTO.getId()); + systemDictDataDO.setDictType("bpm_model_category"); + systemDictDataDO.setLabel(createDTO.getLabel()); + systemDictDataDO.setValue(createDTO.getValue()); + systemDictDataDO.setRemark(createDTO.getRemark()); + return systemDictDataMapper.updateById(systemDictDataDO); + } + + @Override + public int deleteBpmCategory(Long id) { + return systemDictDataMapper.deleteById(id); + } + + @Override + public List findBpmCategory(BpmCategoryBpmPageDTO findDTO) { + + LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(SystemDictDataDO.class) + .eq(StringUtils.isNotBlank(findDTO.getDictType()), SystemDictDataDO::getDictType, findDTO.getDictType()) + .eq(StringUtils.isNotBlank(findDTO.getLabel()), SystemDictDataDO::getLabel, findDTO.getLabel()); + + List systemDictDataDO = systemDictDataMapper.selectList(queryWrapper); + + List categoryVOS = systemDictDataDO.stream().map(bpmCategoryConverter::toVo).collect(Collectors.toList()); + return categoryVOS; + } } diff --git a/workflow-engine-server/src/main/resources/sql/bpm-busines.sql b/workflow-engine-core/src/main/resources/sql/bpm-busines.sql similarity index 100% rename from workflow-engine-server/src/main/resources/sql/bpm-busines.sql rename to workflow-engine-core/src/main/resources/sql/bpm-busines.sql