流程实例过滤配置功能
This commit is contained in:
parent
17bbcc644e
commit
2ec266aaa5
@ -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<Long> createInstanceFilter(@RequestParam("processInstanceId")String processInstanceId) {
|
||||||
|
return success(instanceFilterService.createInstanceFilter(processInstanceId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新流程实例是否需要过滤")
|
||||||
|
public CommonResult<Boolean> 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<Boolean> deleteUserGroup(@RequestParam("id") Long id) {
|
||||||
|
instanceFilterService.deleteInstanceFilter(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得流程实例过滤分页")
|
||||||
|
public CommonResult<PageResult<BpmInstanceFilterDO>> getInstanceFilterPage(@Valid @ModelAttribute BpmInstanceFilterPageReqVO pageVO) {
|
||||||
|
PageResult<BpmInstanceFilterDO> pageResult = instanceFilterService.getInstanceFilterPage(pageVO);
|
||||||
|
return success(pageResult);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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<BpmInstallFilterRespVO> convertPage(PageResult<BpmInstanceFilterDO> page);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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<BpmInstanceFilterDO> {
|
||||||
|
|
||||||
|
default PageResult<BpmInstanceFilterDO> selectPage(BpmInstanceFilterPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<BpmInstanceFilterDO>()
|
||||||
|
.eqIfPresent(BpmInstanceFilterDO::getProcessInstanceId, reqVO.getProcessInstanceId())
|
||||||
|
.eqIfPresent(BpmInstanceFilterDO::getStatus, reqVO.getStatus())
|
||||||
|
.betweenIfPresent(BpmInstanceFilterDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(BpmInstanceFilterDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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<BpmInstanceFilterDO> getInstanceFilterPage(BpmInstanceFilterPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -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<BpmInstanceFilterDO> getInstanceFilterPage(BpmInstanceFilterPageReqVO pageReqVO) {
|
||||||
|
return instanceFilterMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user