优化表单初始化字段

This commit is contained in:
zhou-hao
2018-07-21 16:58:26 +08:00
parent 8ab353ba93
commit 715c9b0723

View File

@@ -2,7 +2,16 @@ package org.hswebframework.web.workflow.service.imp;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.hswebframework.ezorm.rdb.RDBTable;
import org.hswebframework.ezorm.rdb.meta.RDBColumnMetaData;
import org.hswebframework.ezorm.rdb.meta.RDBTableMetaData;
import org.hswebframework.ezorm.rdb.meta.converter.DateTimeConverter;
import org.hswebframework.ezorm.rdb.render.dialect.Dialect;
import org.hswebframework.web.authorization.Authentication;
import org.hswebframework.web.service.form.DynamicFormOperationService;
import org.hswebframework.web.service.form.initialize.ColumnInitializeContext;
import org.hswebframework.web.service.form.initialize.DynamicFormInitializeCustomer;
import org.hswebframework.web.service.form.initialize.TableInitializeContext;
import org.hswebframework.web.workflow.service.config.ProcessConfigurationService;
import org.hswebframework.web.workflow.service.WorkFlowFormService;
import org.hswebframework.web.workflow.service.config.ActivityConfiguration;
@@ -12,6 +21,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.sql.JDBCType;
import java.util.Date;
import java.util.Map;
/**
@@ -19,7 +30,7 @@ import java.util.Map;
* @since 3.0.0-RC
*/
@Service
public class WorkFlowFormServiceImpl extends AbstractFlowableService implements WorkFlowFormService {
public class WorkFlowFormServiceImpl extends AbstractFlowableService implements WorkFlowFormService, DynamicFormInitializeCustomer {
@Autowired
private ProcessConfigurationService processConfigurationService;
@@ -75,8 +86,9 @@ public class WorkFlowFormServiceImpl extends AbstractFlowableService implements
acceptStartProcessFormData(instance, formData);
formData.put("taskId", task.getId());
formData.put("taskDefineKey", task.getTaskDefinitionKey());
formData.put("processTaskId", task.getId());
formData.put("processTaskDefineKey", task.getTaskDefinitionKey());
formData.put("processTaskName",task.getName());
}
@@ -87,8 +99,176 @@ public class WorkFlowFormServiceImpl extends AbstractFlowableService implements
formData.put("processDefineId", instance.getProcessDefinitionId());
formData.put("processDefineKey", instance.getProcessDefinitionKey());
formData.put("processDefineName", instance.getProcessDefinitionName());
formData.put("processDefineName", instance.getProcessDefinitionVersion());
formData.put("processDefineVersion", instance.getProcessDefinitionVersion());
formData.put("processInstanceId", instance.getProcessInstanceId());
}
@Override
public void customTableSetting(TableInitializeContext context) {
RDBTableMetaData table = context.getTable();
Dialect dialect = context.getDatabase().getMeta().getDialect();
//----------taskId--------------
{
RDBColumnMetaData processTaskId = new RDBColumnMetaData();
processTaskId.setJavaType(String.class);
processTaskId.setJdbcType(JDBCType.VARCHAR);
processTaskId.setLength(32);
processTaskId.setName("proc_task_id");
processTaskId.setAlias("processTaskId");
processTaskId.setDataType(dialect.buildDataType(processTaskId));
processTaskId.setComment("流程任务ID");
table.addColumn(processTaskId);
}
//----------taskDefineKey--------------
{
RDBColumnMetaData taskDefineKey = new RDBColumnMetaData();
taskDefineKey.setJavaType(String.class);
taskDefineKey.setJdbcType(JDBCType.VARCHAR);
taskDefineKey.setLength(128);
taskDefineKey.setName("proc_task_key");
taskDefineKey.setAlias("processTaskDefineKey");
taskDefineKey.setDataType(dialect.buildDataType(taskDefineKey));
taskDefineKey.setComment("流程任务定义KEY");
table.addColumn(taskDefineKey);
}
//----------taskName--------------
{
RDBColumnMetaData processTaskName = new RDBColumnMetaData();
processTaskName.setJavaType(String.class);
processTaskName.setJdbcType(JDBCType.VARCHAR);
processTaskName.setLength(128);
processTaskName.setName("proc_task_name");
processTaskName.setAlias("processTaskName");
processTaskName.setDataType(dialect.buildDataType(processTaskName));
processTaskName.setComment("流程任务定义名称");
table.addColumn(processTaskName);
}
//----------processDefineId--------------
{
RDBColumnMetaData processDefineId = new RDBColumnMetaData();
processDefineId.setJavaType(String.class);
processDefineId.setJdbcType(JDBCType.VARCHAR);
processDefineId.setLength(32);
processDefineId.setName("proc_def_id");
processDefineId.setAlias("processDefineId");
processDefineId.setDataType(dialect.buildDataType(processDefineId));
processDefineId.setProperty("read-only", true);
processDefineId.setComment("流程定义ID");
table.addColumn(processDefineId);
}
//----------processDefineKey--------------
{
RDBColumnMetaData processDefineKey = new RDBColumnMetaData();
processDefineKey.setJavaType(String.class);
processDefineKey.setJdbcType(JDBCType.VARCHAR);
processDefineKey.setLength(32);
processDefineKey.setName("proc_def_key");
processDefineKey.setAlias("processDefineKey");
processDefineKey.setDataType(dialect.buildDataType(processDefineKey));
processDefineKey.setProperty("read-only", true);
processDefineKey.setComment("流程定义KEY");
table.addColumn(processDefineKey);
} //----------processDefineName--------------
{
RDBColumnMetaData processDefineName = new RDBColumnMetaData();
processDefineName.setJavaType(String.class);
processDefineName.setJdbcType(JDBCType.VARCHAR);
processDefineName.setLength(128);
processDefineName.setName("proc_def_name");
processDefineName.setAlias("processDefineName");
processDefineName.setDataType(dialect.buildDataType(processDefineName));
processDefineName.setProperty("read-only", true);
processDefineName.setComment("流程定义Name");
table.addColumn(processDefineName);
}//----------processDefineVersion--------------
{
RDBColumnMetaData processDefineVersion = new RDBColumnMetaData();
processDefineVersion.setJavaType(Integer.class);
processDefineVersion.setJdbcType(JDBCType.INTEGER);
processDefineVersion.setLength(32);
processDefineVersion.setPrecision(32);
processDefineVersion.setScale(0);
processDefineVersion.setName("proc_def_ver");
processDefineVersion.setAlias("processDefineVersion");
processDefineVersion.setDataType(dialect.buildDataType(processDefineVersion));
processDefineVersion.setProperty("read-only", true);
processDefineVersion.setComment("流程定义版本");
table.addColumn(processDefineVersion);
}//----------processDefineVersion--------------
{
RDBColumnMetaData processInstanceId = new RDBColumnMetaData();
processInstanceId.setJavaType(String.class);
processInstanceId.setJdbcType(JDBCType.VARCHAR);
processInstanceId.setLength(32);
processInstanceId.setName("proc_ins_id");
processInstanceId.setAlias("processInstanceId");
processInstanceId.setDataType(dialect.buildDataType(processInstanceId));
processInstanceId.setProperty("read-only", true);
processInstanceId.setComment("流程实例ID");
table.addColumn(processInstanceId);
}//----------creatorUserId--------------
{
RDBColumnMetaData creatorUserId = new RDBColumnMetaData();
creatorUserId.setJavaType(String.class);
creatorUserId.setJdbcType(JDBCType.VARCHAR);
creatorUserId.setLength(32);
creatorUserId.setName("creator_id");
creatorUserId.setAlias("creatorId");
creatorUserId.setDataType(dialect.buildDataType(creatorUserId));
creatorUserId.setProperty("read-only", true);
creatorUserId.setComment("创建人ID");
creatorUserId.setDefaultValue(() -> Authentication.current().map(autz -> autz.getUser().getId()).orElse(null));
table.addColumn(creatorUserId);
}
{//-----------creatorName---------
RDBColumnMetaData creatorName = new RDBColumnMetaData();
creatorName.setJavaType(String.class);
creatorName.setJdbcType(JDBCType.VARCHAR);
creatorName.setLength(32);
creatorName.setName("creator_name");
creatorName.setAlias("creatorName");
creatorName.setDataType(dialect.buildDataType(creatorName));
creatorName.setProperty("read-only", true);
creatorName.setComment("创建人姓名");
creatorName.setDefaultValue(() -> Authentication.current().map(autz -> autz.getUser().getName()).orElse(null));
table.addColumn(creatorName);
}
{//-----------creatorName---------
RDBColumnMetaData createTime = new RDBColumnMetaData();
createTime.setJavaType(Date.class);
createTime.setJdbcType(JDBCType.TIMESTAMP);
createTime.setName("create_time");
createTime.setAlias("createTime");
createTime.setDataType(dialect.buildDataType(createTime));
createTime.setProperty("read-only", true);
createTime.setComment("创建时间");
createTime.setNotNull(true);
createTime.setValueConverter(new DateTimeConverter("yyyy-MM-dd HH:mm:ss",Date.class));
createTime.setDefaultValue(Date::new);
table.addColumn(createTime);
}
{//-----------lastUpdateTime---------
RDBColumnMetaData lastUpdateTime = new RDBColumnMetaData();
lastUpdateTime.setJavaType(Date.class);
lastUpdateTime.setJdbcType(JDBCType.TIMESTAMP);
lastUpdateTime.setName("last_update_time");
lastUpdateTime.setAlias("lastUpdateTime");
lastUpdateTime.setDataType(dialect.buildDataType(lastUpdateTime));
lastUpdateTime.setComment("最后一次修改时间");
lastUpdateTime.setNotNull(true);
lastUpdateTime.setValueConverter(new DateTimeConverter("yyyy-MM-dd HH:mm:ss",Date.class));
lastUpdateTime.setDefaultValue(Date::new);
table.addColumn(lastUpdateTime);
}
}
@Override
public void customTableColumnSetting(ColumnInitializeContext context) {
}
}