diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmInstanceFilterController.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmInstanceFilterController.java new file mode 100644 index 00000000..edfa33b5 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/BpmInstanceFilterController.java @@ -0,0 +1,68 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.CommonResult; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter.BpmInstallFilterRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter.BpmInstanceFilterPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmInstallFilterConvert; +import cn.iocoder.yudao.module.bpm.convert.definition.BpmUserGroupConvert; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmInstanceFilterDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import cn.iocoder.yudao.module.bpm.service.definition.BpmInstanceFilterService; +import cn.iocoder.yudao.module.bpm.service.definition.BpmUserGroupService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.validation.Valid; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; + +@Tag(name = "管理后台 - 流程实例过滤") +@RestController +@RequestMapping("/bpm/instance-filter") +@Validated +public class BpmInstanceFilterController { + + @Resource + private BpmInstanceFilterService instanceFilterService; + + @PostMapping("/create") + @Operation(summary = "添加需要过滤的流程实例") + public CommonResult createInstanceFilter(@RequestParam("processInstanceId")String processInstanceId) { + return success(instanceFilterService.createInstanceFilter(processInstanceId)); + } + + @PutMapping("/update") + @Operation(summary = "更新流程实例是否需要过滤") + public CommonResult updateInstanceFilterStatus(@RequestParam("id")Long id, @RequestParam("status") Integer status) { + instanceFilterService.updateInstanceFilterStatus(id, status); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除过滤") + @Parameter(name = "id", description = "编号", required = true) + public CommonResult deleteUserGroup(@RequestParam("id") Long id) { + instanceFilterService.deleteInstanceFilter(id); + return success(true); + } + + @GetMapping("/page") + @Operation(summary = "获得流程实例过滤分页") + public CommonResult> getInstanceFilterPage(@Valid @ModelAttribute BpmInstanceFilterPageReqVO pageVO) { + PageResult pageResult = instanceFilterService.getInstanceFilterPage(pageVO); + return success(pageResult); + } + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/filter/BpmInstallFilterRespVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/filter/BpmInstallFilterRespVO.java new file mode 100644 index 00000000..0260e133 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/filter/BpmInstallFilterRespVO.java @@ -0,0 +1,22 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter; + +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupBaseVO; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程实例过滤 Response VO") +@Data +@ToString(callSuper = true) +public class BpmInstallFilterRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") + private Long id; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + private LocalDateTime createTime; + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/filter/BpmInstanceFilterPageReqVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/filter/BpmInstanceFilterPageReqVO.java new file mode 100644 index 00000000..dbfdd5fd --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/filter/BpmInstanceFilterPageReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter; + +import cn.iocoder.yudao.framework.common.pojo.PageParam; +import cn.iocoder.yudao.framework.common.util.date.DateUtils; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; + +@Schema(description = "管理后台 - 流程实例过滤分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class BpmInstanceFilterPageReqVO extends PageParam { + + @Schema(description = "流程实例ID", example = "xxxxxxx") + private String processInstanceId; + + @Schema(description = "状态", example = "1") + private Integer status; + + @DateTimeFormat(pattern = DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + @Schema(description = "创建时间") + private LocalDateTime[] createTime; + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmInstallFilterConvert.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmInstallFilterConvert.java new file mode 100644 index 00000000..8947191a --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/convert/definition/BpmInstallFilterConvert.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.bpm.convert.definition; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter.BpmInstallFilterRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupCreateReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupRespVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupUpdateReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmInstanceFilterDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import org.mapstruct.Mapper; +import org.mapstruct.Named; +import org.mapstruct.factory.Mappers; + +import java.util.List; + +/** + * 用户组 Convert + * + + */ +@Mapper +public interface BpmInstallFilterConvert { + + BpmInstallFilterConvert INSTANCE = Mappers.getMapper(BpmInstallFilterConvert.class); + + PageResult convertPage(PageResult page); + + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmInstanceFilterDO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmInstanceFilterDO.java new file mode 100644 index 00000000..7ed72831 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/definition/BpmInstanceFilterDO.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.bpm.dal.dataobject.definition; + +import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import cn.iocoder.yudao.framework.mybatis.core.type.JsonLongSetTypeHandler; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.util.Set; + +/** + * Bpm 流程实例过滤 + * + + */ +@TableName(value = "bpm_instance_filter", autoResultMap = true) +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BpmInstanceFilterDO extends BaseDO { + + /** + * 编号,自增 + */ + @TableId + private Long id; + + /** + * 流程实例ID + */ + private String processInstanceId; + + /** + * 状态 + * + * 枚举 {@link CommonStatusEnum} + */ + private Integer status; + + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmInstanceFilterMapper.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmInstanceFilterMapper.java new file mode 100644 index 00000000..fe9096a4 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/definition/BpmInstanceFilterMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.bpm.dal.mysql.definition; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter.BpmInstanceFilterPageReqVO; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.group.BpmUserGroupPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmInstanceFilterDO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmUserGroupDO; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * 流程实例过滤 Mapper + * + + */ +@Mapper +public interface BpmInstanceFilterMapper extends BaseMapperX { + + default PageResult selectPage(BpmInstanceFilterPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .eqIfPresent(BpmInstanceFilterDO::getProcessInstanceId, reqVO.getProcessInstanceId()) + .eqIfPresent(BpmInstanceFilterDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(BpmInstanceFilterDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(BpmInstanceFilterDO::getId)); + } + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmInstanceFilterService.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmInstanceFilterService.java new file mode 100644 index 00000000..3b00428a --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmInstanceFilterService.java @@ -0,0 +1,46 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter.BpmInstanceFilterPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmInstanceFilterDO; + +/** + * 流程实例过滤 Service 接口 + * + + */ +public interface BpmInstanceFilterService { + + /** + * 新增需要过滤的流程实例ID + * + * @param processInstanceId 流程实例ID + * @return 编号 + */ + Long createInstanceFilter(String processInstanceId); + + /** + * 流程实例显示开关 + * + * @param id 主键ID + * @param status 开关状态 + */ + void updateInstanceFilterStatus(Long id, Integer status); + + /** + * 删除用户组 + * + * @param id 编号 + */ + void deleteInstanceFilter(Long id); + + /** + * 获得用户组分页 + * + * @param pageReqVO 分页查询 + * @return 用户组分页 + */ + PageResult getInstanceFilterPage(BpmInstanceFilterPageReqVO pageReqVO); + + +} diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmInstanceFilterServiceImpl.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmInstanceFilterServiceImpl.java new file mode 100644 index 00000000..d0897dc2 --- /dev/null +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/definition/BpmInstanceFilterServiceImpl.java @@ -0,0 +1,53 @@ +package cn.iocoder.yudao.module.bpm.service.definition; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.filter.BpmInstanceFilterPageReqVO; +import cn.iocoder.yudao.module.bpm.dal.dataobject.definition.BpmInstanceFilterDO; +import cn.iocoder.yudao.module.bpm.dal.mysql.definition.BpmInstanceFilterMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +import javax.annotation.Resource; + +/** + * 流程实例过滤 Service 接口 + * + + */ +@Service +@Validated +@Slf4j +public class BpmInstanceFilterServiceImpl implements BpmInstanceFilterService{ + + @Resource + private BpmInstanceFilterMapper instanceFilterMapper; + + @Override + public Long createInstanceFilter(String processInstanceId) { + // 插入 + BpmInstanceFilterDO instanceFilter = new BpmInstanceFilterDO() ; + instanceFilter.setProcessInstanceId(processInstanceId) ; + instanceFilter.setStatus(1) ; + instanceFilterMapper.insert(instanceFilter); + // 返回 + return instanceFilter.getId(); + } + + @Override + public void updateInstanceFilterStatus(Long id, Integer status) { + BpmInstanceFilterDO result = instanceFilterMapper.selectById(id); + result.setStatus(status) ; + instanceFilterMapper.updateById(result) ; + } + + @Override + public void deleteInstanceFilter(Long id) { + instanceFilterMapper.deleteById(id) ; + } + + @Override + public PageResult getInstanceFilterPage(BpmInstanceFilterPageReqVO pageReqVO) { + return instanceFilterMapper.selectPage(pageReqVO); + } +}