吴远 3 months ago
parent
commit
678106e643
  1. 22
      dk-api/api-workflow/src/main/java/org/dromara/workflow/api/domain/FlowLabelVo.java
  2. 29
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/model/dto/AiCompareAlertDTO.java
  3. 46
      dk-modules/workflow/src/main/java/org/dromara/workflow/controller/FlwLabelController.java
  4. 42
      dk-modules/workflow/src/main/java/org/dromara/workflow/domain/FlowLabel.java
  5. 13
      dk-modules/workflow/src/main/java/org/dromara/workflow/mapper/FlwLabelMapper.java
  6. 11
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/FlwLabelService.java
  7. 50
      dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwLabelServiceImpl.java
  8. 22
      dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml

22
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;
}

29
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<RemoteBusinessAlertVo> handleList;
}

46
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<FlowLabel> getInfo(@PathVariable String flowCode) {
return R.ok(flwDepartService.getInfo(flowCode));
}
/**
* 绑定流程标签关系
* flowCode
*/
@Operation(summary = "绑定流程标签关系",description = "绑定流程标签关系")
@PostMapping("/bind/label")
public R<FlowLabel> bindLabel(@Validated({AddGroup.class}) @RequestBody FlowLabel flowLabel) {
return R.ok(flwDepartService.bindLabel(flowLabel));
}
}

42
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<String> labelIds;
}

13
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, FlowLabel> {
FlowLabel getFlowLabel(@Param("labelId") String labelId);
Integer checkFlowLabel(@Param("labelIds") List<String> labelIds);
}

11
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);
}

50
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<FlwLabelMapper, FlowLabel> implements FlwLabelService {
@Override
public FlowLabel getInfo(String flowCode) {
LambdaQueryWrapper<FlowLabel> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(FlowLabel::getFlowCode, flowCode);
return this.baseMapper.selectOne(wrapper);
}
@Transactional(rollbackFor = Exception.class)
@Override
public FlowLabel bindLabel(FlowLabel flowDepart) {
LambdaQueryWrapper<FlowLabel> 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);
}
}

22
dk-modules/workflow/src/main/resources/mapper/workflow/FlwLabelMapper.xml

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dromara.workflow.mapper.FlwLabelMapper">
<select id="getFlowLabel" resultType="org.dromara.workflow.domain.FlowLabel">
select fd.* from flow_label fd where JSON_CONTAINS(fd.label_ids, #{labelId})
</select>
<select id="checkFlowLabel" resultType="java.lang.Integer">
SELECT
count(1)
FROM flow_label fd
where
<foreach collection="labelIds" item="item" open="(" separator=" OR " close=")">
JSON_CONTAINS(fd.label_ids, CONCAT('"', #{item}, '"'))
</foreach>
</select>
</mapper>
Loading…
Cancel
Save