feat:流程回调支持提取流程审批意见

This commit is contained in:
FCL
2026-02-25 14:09:13 +08:00
parent 1280ff5813
commit f74a18cf33
13 changed files with 743 additions and 10 deletions

View File

@@ -33,6 +33,7 @@ public interface ErrorCodeConstants {
ErrorCode DICTIONARY_BUSINESS_DATA_MORE_THAN_ONE = new ErrorCode(1_032_001_000, "业务参数字典[数据]key重名请联系管理员处理"); ErrorCode DICTIONARY_BUSINESS_DATA_MORE_THAN_ONE = new ErrorCode(1_032_001_000, "业务参数字典[数据]key重名请联系管理员处理");
ErrorCode DICTIONARY_BUSINESS_CATEGORY_MORE_THAN_ONE = new ErrorCode(1_032_001_000, "业务参数字典[分类]key重名请联系管理员处理"); ErrorCode DICTIONARY_BUSINESS_CATEGORY_MORE_THAN_ONE = new ErrorCode(1_032_001_000, "业务参数字典[分类]key重名请联系管理员处理");
ErrorCode DICTIONARY_BUSINESS_CLASSIFY_DUPLICATE = new ErrorCode(1_032_001_000, "分类名称重复,请重新输入"); ErrorCode DICTIONARY_BUSINESS_CLASSIFY_DUPLICATE = new ErrorCode(1_032_001_000, "分类名称重复,请重新输入");
ErrorCode DATA_OPINION_NOT_EXISTS = new ErrorCode(1_032_001_000, "审批意见不存在");
/*==============================config 配置模块 1_032_050_000 ~ 1_032_099_999 ===============================*/ /*==============================config 配置模块 1_032_050_000 ~ 1_032_099_999 ===============================*/
ErrorCode CONFIG_REPORT_TEMPLATE_NOT_EXISTS = new ErrorCode(1_032_050_000, "报表模版配置不存在"); ErrorCode CONFIG_REPORT_TEMPLATE_NOT_EXISTS = new ErrorCode(1_032_050_000, "报表模版配置不存在");

View File

@@ -11,12 +11,14 @@ public class QmsBpmConstant {
* 流程回调时使用的ActivityId Key * 流程回调时使用的ActivityId Key
* */ * */
public static final String BPM_CALLBACK_ACTIVITY_ID = "bpmCallbackActivityId"; public static final String BPM_CALLBACK_ACTIVITY_ID = "bpmCallbackActivityId";
public static final String BPM_CALLBACK_ACTIVITY_NAME = "bpmCallbackActivityName";
public static final String BPM_FIELD_EXTENSIONS = "bpmFieldExtensions"; public static final String BPM_FIELD_EXTENSIONS = "bpmFieldExtensions";
public static final String BPM_FIRST_ACTIVITY_FLAG = "firstActivityFlag"; public static final String BPM_FIRST_ACTIVITY_FLAG = "firstActivityFlag";
public static final String BPM_LAST_ACTIVITY_FLAG = "lastActivityFlag"; public static final String BPM_LAST_ACTIVITY_FLAG = "lastActivityFlag";
public static final String BPM_REJECT_TO_FIRST_FLAG = "rejectToFirstActivity"; public static final String BPM_REJECT_TO_FIRST_FLAG = "rejectToFirstActivity";
public static final String BPM_CUR_ACTIVITY_INS_ID = "currentActivityInsId"; //当前活动实例id public static final String BPM_CUR_ACTIVITY_INS_ID = "currentActivityInsId"; //当前活动实例id
public static final String BPM_PROCESS_INS_ID = "processInstanceId"; //当前活动实例id
public static final String BPM_PROCESS_INS_ID = "processInstanceId"; //流程实例ID
//驳回标记前缀 //驳回标记前缀
public static final String BPM_CALLBACK_RETURN_FLAG_PREFIX_KEY = "RETURN_FLAG_"; public static final String BPM_CALLBACK_RETURN_FLAG_PREFIX_KEY = "RETURN_FLAG_";

View File

@@ -0,0 +1,70 @@
package com.zt.plat.module.qms.common.data.controller.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 审批意见分页 Request VO")
@Data
public class DataOpinionPageReqVO extends PageParam {
@Schema(description = "业务数据ID", example = "4483")
private Long businessId;
@Schema(description = "流程实例ID", example = "28150")
private String flowInstanceId;
@Schema(description = "流程活动code")
private String nodeKey;
@Schema(description = "流程活动名", example = "王五")
private String nodeName;
@Schema(description = "自定义key")
private String customKey;
@Schema(description = "审批人ID", example = "23093")
private Long opinionUserId;
@Schema(description = "审批人姓名", example = "赵六")
private String opinionUserName;
@Schema(description = "审批人部门ID", example = "2389")
private Long opinionDepartmentId;
@Schema(description = "审批人部门名", example = "赵六")
private String opinionDepartmentName;
@Schema(description = "审批时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] opinionTime;
@Schema(description = "意见内容")
private String opinionContent;
@Schema(description = "签名id", example = "29049")
private Long opinionSignatureId;
@Schema(description = "禁用状态,0-启用1-禁用")
private String cancelFlag;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "排序号")
private Integer sortNo;
@Schema(description = "备注")
private String remark;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@@ -0,0 +1,86 @@
package com.zt.plat.module.qms.common.data.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 审批意见 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DataOpinionRespVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "18610")
@ExcelProperty("主键")
private Long id;
@Schema(description = "业务数据ID", example = "4483")
@ExcelProperty("业务数据ID")
private Long businessId;
@Schema(description = "流程实例ID", example = "28150")
@ExcelProperty("流程实例ID")
private String flowInstanceId;
@Schema(description = "流程活动code")
@ExcelProperty("流程活动code")
private String nodeKey;
@Schema(description = "流程活动名", example = "王五")
@ExcelProperty("流程活动名")
private String nodeName;
@Schema(description = "自定义key")
@ExcelProperty("自定义key")
private String customKey;
@Schema(description = "审批人ID", example = "23093")
@ExcelProperty("审批人ID")
private Long opinionUserId;
@Schema(description = "审批人姓名", example = "赵六")
@ExcelProperty("审批人姓名")
private String opinionUserName;
@Schema(description = "审批人部门ID", example = "2389")
@ExcelProperty("审批人部门ID")
private Long opinionDepartmentId;
@Schema(description = "审批人部门名", example = "赵六")
@ExcelProperty("审批人部门名")
private String opinionDepartmentName;
@Schema(description = "审批时间")
@ExcelProperty("审批时间")
private LocalDateTime opinionTime;
@Schema(description = "意见内容")
@ExcelProperty("意见内容")
private String opinionContent;
@Schema(description = "签名id", example = "29049")
@ExcelProperty("签名id")
private Long opinionSignatureId;
@Schema(description = "禁用状态,0-启用1-禁用", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("禁用状态,0-启用1-禁用")
private String cancelFlag;
@Schema(description = "所属部门")
@ExcelProperty("所属部门")
private String systemDepartmentCode;
@Schema(description = "排序号")
@ExcelProperty("排序号")
private Integer sortNo;
@Schema(description = "备注")
@ExcelProperty("备注")
private String remark;
@Schema(description = "创建时间")
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@@ -0,0 +1,63 @@
package com.zt.plat.module.qms.common.data.controller.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.*;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 审批意见新增/修改 Request VO")
@Data
public class DataOpinionSaveReqVO {
@Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "18610")
private Long id;
@Schema(description = "业务数据ID", example = "4483")
private Long businessId;
@Schema(description = "流程实例ID", example = "28150")
private String flowInstanceId;
@Schema(description = "流程活动code")
private String nodeKey;
@Schema(description = "流程活动名", example = "王五")
private String nodeName;
@Schema(description = "自定义key")
private String customKey;
@Schema(description = "审批人ID", example = "23093")
private Long opinionUserId;
@Schema(description = "审批人姓名", example = "赵六")
private String opinionUserName;
@Schema(description = "审批人部门ID", example = "2389")
private Long opinionDepartmentId;
@Schema(description = "审批人部门名", example = "赵六")
private String opinionDepartmentName;
@Schema(description = "审批时间")
private LocalDateTime opinionTime;
@Schema(description = "意见内容")
private String opinionContent;
@Schema(description = "签名id", example = "29049")
private Long opinionSignatureId;
@Schema(description = "禁用状态,0-启用1-禁用", requiredMode = Schema.RequiredMode.REQUIRED)
private String cancelFlag;
@Schema(description = "所属部门")
private String systemDepartmentCode;
@Schema(description = "排序号")
private Integer sortNo;
@Schema(description = "备注")
private String remark;
}

View File

@@ -0,0 +1,40 @@
package com.zt.plat.module.qms.common.data.dal.mapper;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.zt.plat.framework.mybatis.core.mapper.BaseMapperX;
import com.zt.plat.module.qms.common.data.controller.vo.DataOpinionPageReqVO;
import com.zt.plat.module.qms.common.data.dal.dataobject.DataOpinionDO;
import org.apache.ibatis.annotations.Mapper;
/**
* 审批意见 Mapper
*
* @author 后台管理
*/
@Mapper
public interface DataOpinionMapper extends BaseMapperX<DataOpinionDO> {
default PageResult<DataOpinionDO> selectPage(DataOpinionPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<DataOpinionDO>()
.eqIfPresent(DataOpinionDO::getBusinessId, reqVO.getBusinessId())
.eqIfPresent(DataOpinionDO::getFlowInstanceId, reqVO.getFlowInstanceId())
.eqIfPresent(DataOpinionDO::getNodeKey, reqVO.getNodeKey())
.likeIfPresent(DataOpinionDO::getNodeName, reqVO.getNodeName())
.eqIfPresent(DataOpinionDO::getCustomKey, reqVO.getCustomKey())
.eqIfPresent(DataOpinionDO::getOpinionUserId, reqVO.getOpinionUserId())
.likeIfPresent(DataOpinionDO::getOpinionUserName, reqVO.getOpinionUserName())
.eqIfPresent(DataOpinionDO::getOpinionDepartmentId, reqVO.getOpinionDepartmentId())
.likeIfPresent(DataOpinionDO::getOpinionDepartmentName, reqVO.getOpinionDepartmentName())
.betweenIfPresent(DataOpinionDO::getOpinionTime, reqVO.getOpinionTime())
.eqIfPresent(DataOpinionDO::getOpinionContent, reqVO.getOpinionContent())
.eqIfPresent(DataOpinionDO::getOpinionSignatureId, reqVO.getOpinionSignatureId())
.eqIfPresent(DataOpinionDO::getCancelFlag, reqVO.getCancelFlag())
.eqIfPresent(DataOpinionDO::getSystemDepartmentCode, reqVO.getSystemDepartmentCode())
.eqIfPresent(DataOpinionDO::getSortNo, reqVO.getSortNo())
.eqIfPresent(DataOpinionDO::getRemark, reqVO.getRemark())
.betweenIfPresent(DataOpinionDO::getCreateTime, reqVO.getCreateTime())
.orderByDesc(DataOpinionDO::getId));
}
}

View File

@@ -0,0 +1,71 @@
package com.zt.plat.module.qms.common.data.service;
import java.util.*;
import com.alibaba.fastjson.JSONObject;
import com.zt.plat.module.qms.common.data.controller.vo.DataOpinionPageReqVO;
import com.zt.plat.module.qms.common.data.controller.vo.DataOpinionRespVO;
import com.zt.plat.module.qms.common.data.controller.vo.DataOpinionSaveReqVO;
import com.zt.plat.module.qms.resource.device.dal.dataobject.DeviceApplyDO;
import jakarta.validation.*;
import com.zt.plat.module.qms.common.data.dal.dataobject.DataOpinionDO;
import com.zt.plat.framework.common.pojo.PageResult;
/**
* 审批意见 Service 接口
*
* @author 后台管理
*/
public interface DataOpinionService {
void disableOpinionsByBusId(Long busId);
void saveOpinionByWfCallback(DeviceApplyDO entity, String activityId, String activityName, JSONObject taskVariables);
/**
* 创建审批意见
*
* @param createReqVO 创建信息
* @return 编号
*/
DataOpinionRespVO createDataOpinion(@Valid DataOpinionSaveReqVO createReqVO);
/**
* 更新审批意见
*
* @param updateReqVO 更新信息
*/
void updateDataOpinion(@Valid DataOpinionSaveReqVO updateReqVO);
/**
* 删除审批意见
*
* @param id 编号
*/
void deleteDataOpinion(Long id);
/**
* 批量删除审批意见
*
* @param ids 编号
*/
void deleteDataOpinionListByIds(List<Long> ids);
/**
* 获得审批意见
*
* @param id 编号
* @return 审批意见
*/
DataOpinionDO getDataOpinion(Long id);
/**
* 获得审批意见分页
*
* @param pageReqVO 分页查询
* @return 审批意见分页
*/
PageResult<DataOpinionDO> getDataOpinionPage(DataOpinionPageReqVO pageReqVO);
}

Some files were not shown because too many files have changed in this diff Show More