mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2026-01-10 17:25:58 +08:00
Compare commits
4 Commits
0cb4b35f53
...
39b19ac361
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
39b19ac361 | ||
|
|
279488e7ed | ||
|
|
e28e15d943 | ||
|
|
b44b5551e3 |
2
pom.xml
2
pom.xml
@@ -48,7 +48,7 @@
|
||||
<!-- 面向运行时的D-ORM依赖 -->
|
||||
<anyline.version>8.7.2-20250603</anyline.version>
|
||||
<!-- 工作流配置 -->
|
||||
<warm-flow.version>1.8.3</warm-flow.version>
|
||||
<warm-flow.version>1.8.4</warm-flow.version>
|
||||
|
||||
<!-- 插件版本 -->
|
||||
<maven-jar-plugin.version>3.4.2</maven-jar-plugin.version>
|
||||
|
||||
@@ -147,12 +147,12 @@ public class CellMergeHandler {
|
||||
private boolean isMerge(Object currentRow, Object preRow, CellMerge cellMerge) {
|
||||
final String[] mergeBy = cellMerge.mergeBy();
|
||||
if (StrUtil.isAllNotBlank(mergeBy)) {
|
||||
//比对当前行和上一行的各个属性值一一比对 如果全为真 则为真
|
||||
// 比对当前行和上一行的各个属性值一一比对 如果全为真 则为真
|
||||
for (String fieldName : mergeBy) {
|
||||
final Object valCurrent = ReflectUtil.getFieldValue(currentRow, fieldName);
|
||||
final Object valPre = ReflectUtil.getFieldValue(preRow, fieldName);
|
||||
if (!Objects.equals(valPre, valCurrent)) {
|
||||
//依赖字段如有任一不等值,则标记为不可合并
|
||||
// 依赖字段如有任一不等值,则标记为不可合并
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,15 +2,16 @@ package org.dromara.common.excel.core;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.idev.excel.metadata.Head;
|
||||
import cn.idev.excel.write.handler.WorkbookWriteHandler;
|
||||
import cn.idev.excel.write.handler.context.WorkbookWriteHandlerContext;
|
||||
import cn.idev.excel.write.handler.SheetWriteHandler;
|
||||
import cn.idev.excel.write.merge.AbstractMergeStrategy;
|
||||
import cn.idev.excel.write.metadata.holder.WriteSheetHolder;
|
||||
import cn.idev.excel.write.metadata.holder.WriteWorkbookHolder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Sheet;
|
||||
import org.apache.poi.ss.util.CellRangeAddress;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 列值重复合并策略
|
||||
@@ -18,7 +19,7 @@ import java.util.*;
|
||||
* @author Lion Li
|
||||
*/
|
||||
@Slf4j
|
||||
public class CellMergeStrategy extends AbstractMergeStrategy implements WorkbookWriteHandler {
|
||||
public class CellMergeStrategy extends AbstractMergeStrategy implements SheetWriteHandler {
|
||||
|
||||
private final List<CellRangeAddress> cellList;
|
||||
|
||||
@@ -32,27 +33,28 @@ public class CellMergeStrategy extends AbstractMergeStrategy implements Workbook
|
||||
|
||||
@Override
|
||||
protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) {
|
||||
if (CollUtil.isEmpty(cellList)){
|
||||
if (CollUtil.isEmpty(cellList)) {
|
||||
return;
|
||||
}
|
||||
//单元格写入了,遍历合并区域,如果该Cell在区域内,但非首行,则清空
|
||||
// 单元格写入了,遍历合并区域,如果该Cell在区域内,但非首行,则清空
|
||||
final int rowIndex = cell.getRowIndex();
|
||||
for (CellRangeAddress cellAddresses : cellList) {
|
||||
final int firstRow = cellAddresses.getFirstRow();
|
||||
if (cellAddresses.isInRange(cell) && rowIndex != firstRow){
|
||||
if (cellAddresses.isInRange(cell) && rowIndex != firstRow) {
|
||||
cell.setBlank();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterWorkbookDispose(final WorkbookWriteHandlerContext context) {
|
||||
if (CollUtil.isEmpty(cellList)){
|
||||
public void afterSheetCreate(final WriteWorkbookHolder writeWorkbookHolder, final WriteSheetHolder writeSheetHolder) {
|
||||
if (CollUtil.isEmpty(cellList)) {
|
||||
return;
|
||||
}
|
||||
//当前表格写完后,统一写入
|
||||
// 在 Sheet 创建时提前写入合并区域;后续写入只会影响首格,不会移除合并
|
||||
final Sheet sheet = writeSheetHolder.getSheet();
|
||||
for (CellRangeAddress item : cellList) {
|
||||
context.getWriteContext().writeSheetHolder().getSheet().addMergedRegion(item);
|
||||
sheet.addMergedRegion(item);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ public class FlowTaskVo implements Serializable {
|
||||
/**
|
||||
* 流程签署比例值 大于0为票签,会签
|
||||
*/
|
||||
private BigDecimal nodeRatio;
|
||||
private String nodeRatio;
|
||||
|
||||
/**
|
||||
* 申请人id
|
||||
|
||||
@@ -31,6 +31,7 @@ import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.warm.flow.core.FlowEngine;
|
||||
import org.dromara.warm.flow.core.dto.FlowParams;
|
||||
import org.dromara.warm.flow.core.entity.*;
|
||||
import org.dromara.warm.flow.core.enums.CooperateType;
|
||||
import org.dromara.warm.flow.core.enums.NodeType;
|
||||
import org.dromara.warm.flow.core.enums.SkipType;
|
||||
import org.dromara.warm.flow.core.enums.UserType;
|
||||
@@ -62,7 +63,6 @@ import org.dromara.workflow.service.IFlwTaskService;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
import static org.dromara.workflow.common.constant.FlowConstant.*;
|
||||
@@ -744,7 +744,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
|
||||
Task task = taskService.getById(taskId);
|
||||
FlowNode flowNode = getByNodeCode(task.getNodeCode(), task.getDefinitionId());
|
||||
if (ADD_SIGNATURE.equals(taskOperation) || REDUCTION_SIGNATURE.equals(taskOperation)) {
|
||||
if (flowNode.getNodeRatio().compareTo(BigDecimal.ZERO) == 0) {
|
||||
if (!CooperateType.isCountersign(flowNode.getNodeRatio())) {
|
||||
throw new ServiceException(task.getNodeName() + "不是会签节点!");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -55,13 +55,12 @@ create table FLOW_NODE
|
||||
DEFINITION_ID NUMBER(20) not null,
|
||||
NODE_CODE VARCHAR2(100) not null,
|
||||
NODE_NAME VARCHAR2(100),
|
||||
NODE_RATIO NUMBER(6, 3),
|
||||
PERMISSION_FLAG VARCHAR2(200),
|
||||
NODE_RATIO VARCHAR2(200),
|
||||
COORDINATE VARCHAR2(100),
|
||||
ANY_NODE_SKIP VARCHAR2(100),
|
||||
LISTENER_TYPE VARCHAR2(100),
|
||||
LISTENER_PATH VARCHAR2(500),
|
||||
HANDLER_TYPE VARCHAR2(100),
|
||||
HANDLER_PATH VARCHAR2(400),
|
||||
FORM_CUSTOM VARCHAR2(1) default 'N',
|
||||
FORM_PATH VARCHAR2(100),
|
||||
VERSION VARCHAR2(20),
|
||||
@@ -71,8 +70,7 @@ create table FLOW_NODE
|
||||
UPDATE_BY VARCHAR2(64) default '',
|
||||
EXT CLOB,
|
||||
DEL_FLAG VARCHAR2(1) default '0',
|
||||
TENANT_ID VARCHAR2(40),
|
||||
PERMISSION_FLAG VARCHAR2(200)
|
||||
TENANT_ID VARCHAR2(40)
|
||||
);
|
||||
|
||||
alter table FLOW_NODE
|
||||
@@ -89,8 +87,6 @@ comment on column FLOW_NODE.COORDINATE is '坐标';
|
||||
comment on column FLOW_NODE.ANY_NODE_SKIP is '任意结点跳转';
|
||||
comment on column FLOW_NODE.LISTENER_TYPE is '监听器类型';
|
||||
comment on column FLOW_NODE.LISTENER_PATH is '监听器路径';
|
||||
comment on column FLOW_NODE.HANDLER_TYPE is '处理器类型';
|
||||
comment on column FLOW_NODE.HANDLER_PATH is '处理器路径';
|
||||
comment on column FLOW_NODE.FORM_CUSTOM is '审批表单是否自定义 (Y是 N否)';
|
||||
comment on column FLOW_NODE.FORM_PATH is '审批表单路径';
|
||||
comment on column FLOW_NODE.VERSION is '版本';
|
||||
|
||||
@@ -51,13 +51,11 @@ CREATE TABLE flow_node
|
||||
node_code varchar(100) NOT NULL,
|
||||
node_name varchar(100) NULL,
|
||||
permission_flag varchar(200) NULL,
|
||||
node_ratio numeric(6, 3) NULL,
|
||||
node_ratio varchar(200) NULL,
|
||||
coordinate varchar(100) NULL,
|
||||
any_node_skip varchar(100) NULL,
|
||||
listener_type varchar(100) NULL,
|
||||
listener_path varchar(400) NULL,
|
||||
handler_type varchar(100) NULL,
|
||||
handler_path varchar(400) NULL,
|
||||
form_custom bpchar(1) NULL DEFAULT 'N':: character varying,
|
||||
form_path varchar(100) NULL,
|
||||
"version" varchar(20) NOT NULL,
|
||||
@@ -83,8 +81,6 @@ COMMENT ON COLUMN flow_node.coordinate IS '坐标';
|
||||
COMMENT ON COLUMN flow_node.any_node_skip IS '任意结点跳转';
|
||||
COMMENT ON COLUMN flow_node.listener_type IS '监听器类型';
|
||||
COMMENT ON COLUMN flow_node.listener_path IS '监听器路径';
|
||||
COMMENT ON COLUMN flow_node.handler_type IS '处理器类型';
|
||||
COMMENT ON COLUMN flow_node.handler_path IS '处理器路径';
|
||||
COMMENT ON COLUMN flow_node.form_custom IS '审批表单是否自定义(Y是 N否)';
|
||||
COMMENT ON COLUMN flow_node.form_path IS '审批表单路径';
|
||||
COMMENT ON COLUMN flow_node."version" IS '版本';
|
||||
|
||||
@@ -33,13 +33,11 @@ CREATE TABLE `flow_node`
|
||||
`node_code` varchar(100) NOT NULL COMMENT '流程节点编码',
|
||||
`node_name` varchar(100) DEFAULT NULL COMMENT '流程节点名称',
|
||||
`permission_flag` varchar(200) DEFAULT NULL COMMENT '权限标识(权限类型:权限标识,可以多个,用@@隔开)',
|
||||
`node_ratio` decimal(6, 3) DEFAULT NULL COMMENT '流程签署比例值',
|
||||
`node_ratio` varchar(200) DEFAULT NULL COMMENT '流程签署比例值',
|
||||
`coordinate` varchar(100) DEFAULT NULL COMMENT '坐标',
|
||||
`any_node_skip` varchar(100) DEFAULT NULL COMMENT '任意结点跳转',
|
||||
`listener_type` varchar(100) DEFAULT NULL COMMENT '监听器类型',
|
||||
`listener_path` varchar(400) DEFAULT NULL COMMENT '监听器路径',
|
||||
`handler_type` varchar(100) DEFAULT NULL COMMENT '处理器类型',
|
||||
`handler_path` varchar(400) DEFAULT NULL COMMENT '处理器路径',
|
||||
`form_custom` char(1) DEFAULT 'N' COMMENT '审批表单是否自定义(Y是 N否)',
|
||||
`form_path` varchar(100) DEFAULT NULL COMMENT '审批表单路径',
|
||||
`version` varchar(20) NOT NULL COMMENT '版本',
|
||||
|
||||
@@ -174,13 +174,11 @@ CREATE TABLE flow_node (
|
||||
node_code nvarchar(100) NOT NULL,
|
||||
node_name nvarchar(100) NULL,
|
||||
permission_flag nvarchar(200) NULL,
|
||||
node_ratio decimal(6,3) NULL,
|
||||
node_ratio nvarchar(200) NULL,
|
||||
coordinate nvarchar(100) NULL,
|
||||
any_node_skip nvarchar(100) NULL,
|
||||
listener_type nvarchar(100) NULL,
|
||||
listener_path nvarchar(400) NULL,
|
||||
handler_type nvarchar(100) NULL,
|
||||
handler_path nvarchar(400) NULL,
|
||||
form_custom nchar(1) DEFAULT('N') NULL,
|
||||
form_path nvarchar(100) NULL,
|
||||
version nvarchar(20) NOT NULL,
|
||||
@@ -275,20 +273,6 @@ EXEC sp_addextendedproperty
|
||||
'COLUMN', N'listener_path'
|
||||
GO
|
||||
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'处理器类型',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'flow_node',
|
||||
'COLUMN', N'handler_type'
|
||||
GO
|
||||
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'处理器路径',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'flow_node',
|
||||
'COLUMN', N'handler_path'
|
||||
GO
|
||||
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'审批表单是否自定义(Y是 N否)',
|
||||
'SCHEMA', N'dbo',
|
||||
|
||||
4
script/sql/update/oracle/update_5.5.1-5.5.2.sql
Normal file
4
script/sql/update/oracle/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
ALTER TABLE flow_node MODIFY (node_ratio VARCHAR2(200) DEFAULT NULL NULL);
|
||||
COMMENT ON COLUMN flow_node.node_ratio IS '流程签署比例值';
|
||||
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||
6
script/sql/update/postgres/update_5.5.1-5.5.2.sql
Normal file
6
script/sql/update/postgres/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE flow_node
|
||||
ALTER COLUMN node_ratio TYPE VARCHAR(200),
|
||||
ALTER COLUMN node_ratio DROP NOT NULL;
|
||||
COMMENT ON COLUMN flow_node.node_ratio IS '流程签署比例值';
|
||||
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||
22
script/sql/update/sqlserver/update_5.5.1-5.5.2.sql
Normal file
22
script/sql/update/sqlserver/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,22 @@
|
||||
ALTER TABLE flow_node ALTER COLUMN node_ratio nvarchar(200) NULL;
|
||||
GO
|
||||
IF ((SELECT COUNT(*) FROM ::fn_listextendedproperty('MS_Description',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'flow_his_task',
|
||||
'COLUMN', N'collaborator')) > 0)
|
||||
EXEC sp_updateextendedproperty
|
||||
'MS_Description', N'流程签署比例值',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'flow_node',
|
||||
'COLUMN', N'node_ratio'
|
||||
ELSE
|
||||
EXEC sp_addextendedproperty
|
||||
'MS_Description', N'流程签署比例值',
|
||||
'SCHEMA', N'dbo',
|
||||
'TABLE', N'flow_node',
|
||||
'COLUMN', N'node_ratio'
|
||||
GO
|
||||
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||
GO
|
||||
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||
GO
|
||||
3
script/sql/update/update_5.5.1-5.5.2.sql
Normal file
3
script/sql/update/update_5.5.1-5.5.2.sql
Normal file
@@ -0,0 +1,3 @@
|
||||
ALTER TABLE flow_node MODIFY COLUMN node_ratio varchar(200) NULL COMMENT '流程签署比例值';
|
||||
ALTER TABLE flow_node DROP COLUMN handler_type;
|
||||
ALTER TABLE flow_node DROP COLUMN handler_path;
|
||||
Reference in New Issue
Block a user