diff --git a/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java new file mode 100644 index 0000000..a67987f --- /dev/null +++ b/dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java @@ -0,0 +1,22 @@ +package org.dromara.workflow.api.domain; + +import lombok.Data; + +@Data +public class FlowLabelVo { + + + private Long id; + + /** + * 流程类型 + */ + private String flowType; + + /** + * 流程编码 + */ + private String flowCode; + + +} diff --git a/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareAlertDTO.java b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareAlertDTO.java new file mode 100644 index 0000000..89e54e1 --- /dev/null +++ b/dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareAlertDTO.java @@ -0,0 +1,29 @@ +package org.dromara.sample.wayline.model.dto; + +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.business.api.domain.bo.RemoteBusinessAlertBo; +import org.dromara.business.api.domain.vo.RemoteBusinessAlertVo; +import org.dromara.sample.wayline.model.entity.AiComparePlateEntity; + +import java.util.List; + +/** + * @auther yq + * @data 2025/3/29 + */ +@Data +@EqualsAndHashCode() +public class AiCompareAlertDTO { + + private String fileId; + private String compareId; + + private String jobId; + private String jobName; + + private String discernImgUrl; + + private List handleList; +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java new file mode 100644 index 0000000..e520b9d --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java @@ -0,0 +1,46 @@ +package org.dromara.workflow.controller; + + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.FlowLabel; +import org.dromara.workflow.service.FlwLabelService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "流程部门管理") +@ConditionalOnEnable +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/flow/label") +public class FlwLabelController { + + + private final FlwLabelService flwDepartService; + + /** + * 查询流程标签关系 + * flowCode + */ + @Operation(summary = "查询流程标签关系",description = "查询流程标签关系") + @GetMapping("/{flowCode}/getInfo") + public R getInfo(@PathVariable String flowCode) { + return R.ok(flwDepartService.getInfo(flowCode)); + } + + + /** + * 绑定流程标签关系 + * flowCode + */ + @Operation(summary = "绑定流程标签关系",description = "绑定流程标签关系") + @PostMapping("/bind/label") + public R bindLabel(@Validated({AddGroup.class}) @RequestBody FlowLabel flowLabel) { + return R.ok(flwDepartService.bindLabel(flowLabel)); + } +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java new file mode 100644 index 0000000..d04d1ee --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java @@ -0,0 +1,42 @@ +package org.dromara.workflow.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.workflow.handler.ListTypeHandler; + +import java.util.List; + +/** + * 部门流程关系表 + */ +@Data +@TableName(value = "flow_label",autoResultMap = true) +public class FlowLabel { + + + @TableId(type = IdType.ASSIGN_ID) + private Long id; + + + /** + * 流程编码 + */ + @NotNull(message = "流程编码不能为空", groups = AddGroup.class) + private String flowCode; + + /** + * 租户编号 + */ + private String tenantId; + + /** + * 部门id集合 + */ + @TableField(value = "label_ids",typeHandler = ListTypeHandler.class) + List labelIds; +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java new file mode 100644 index 0000000..34900e1 --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java @@ -0,0 +1,13 @@ +package org.dromara.workflow.mapper; + +import org.apache.ibatis.annotations.Param; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.workflow.domain.FlowLabel; + +import java.util.List; + +public interface FlwLabelMapper extends BaseMapperPlus { + FlowLabel getFlowLabel(@Param("labelId") String labelId); + + Integer checkFlowLabel(@Param("labelIds") List labelIds); +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java new file mode 100644 index 0000000..619edf8 --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java @@ -0,0 +1,11 @@ +package org.dromara.workflow.service; + +import org.dromara.workflow.domain.FlowLabel; + +public interface FlwLabelService { + FlowLabel getInfo(String flowCode); + + FlowLabel bindLabel(FlowLabel flowDepart); + + FlowLabel getFlowLabel(String labelId); +} diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java new file mode 100644 index 0000000..1eebe4f --- /dev/null +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java @@ -0,0 +1,50 @@ +package org.dromara.workflow.service.impl; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.exception.ServiceException; +import org.dromara.workflow.domain.FlowLabel; +import org.dromara.workflow.mapper.FlwLabelMapper; +import org.dromara.workflow.service.FlwLabelService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +public class FlwLabelServiceImpl extends ServiceImpl implements FlwLabelService { + + + @Override + public FlowLabel getInfo(String flowCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(FlowLabel::getFlowCode, flowCode); + + return this.baseMapper.selectOne(wrapper); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public FlowLabel bindLabel(FlowLabel flowDepart) { + LambdaQueryWrapper updateWrapper = new LambdaQueryWrapper<>(); + updateWrapper.eq(FlowLabel::getFlowCode, flowDepart.getFlowCode()); + this.baseMapper.delete(updateWrapper); + + if (ObjectUtil.isNotEmpty(flowDepart.getLabelIds())) { + //查询部门是否还存在别的流程 + if (this.baseMapper.checkFlowLabel(flowDepart.getLabelIds()) > 0){ + throw new ServiceException("所选的标签中,已存在在其他流程中,请检查后在提交!"); + } + + this.baseMapper.insert(flowDepart); + } + + return flowDepart; + } + + @Override + public FlowLabel getFlowLabel(String labelId) { + return this.baseMapper.getFlowLabel(labelId); + } +} diff --git a/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml new file mode 100644 index 0000000..ad82fca --- /dev/null +++ b/dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + +