Commit e2ccfc05 authored by 雍欢's avatar 雍欢

如果界面元素的formFieldId不为空,则说明该界面元素是与表单字段进行的绑定,这时需要将界面元素的code替换为:field+表单字段排序

parent 990e9032
ALTER TABLE WF_APPROVALRULEHANDLERUIPERM
ADD (FORM_FIELD_ID VARCHAR2(32) );
COMMENT ON COLUMN WF_APPROVALRULEHANDLERUIPERM.FORM_FIELD_ID IS '表单字段id';
...@@ -5,7 +5,11 @@ import javax.persistence.Entity; ...@@ -5,7 +5,11 @@ import javax.persistence.Entity;
import javax.persistence.Table; import javax.persistence.Table;
import com.huigou.data.domain.model.AbstractEntity; import com.huigou.data.domain.model.AbstractEntity;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@Entity @Entity
@Table(name = "WF_ApprovalRuleHandlerUIPerm") @Table(name = "WF_ApprovalRuleHandlerUIPerm")
public class ApprovalRuleHandlerUIElmentPermission extends AbstractEntity { public class ApprovalRuleHandlerUIElmentPermission extends AbstractEntity {
...@@ -23,59 +27,23 @@ public class ApprovalRuleHandlerUIElmentPermission extends AbstractEntity { ...@@ -23,59 +27,23 @@ public class ApprovalRuleHandlerUIElmentPermission extends AbstractEntity {
/** /**
* 字段类型 * 字段类型
*/ */
@Column(name="kind_id") @Column(name = "kind_id")
private String kindId; private String kindId;
/** /**
* 字段权限 * 字段权限
*/ */
@Column(name="operation_id") @Column(name = "operation_id")
private String operationId; private String operationId;
/** /**
* 排序号 * 排序号
*/ */
private Integer sequence; private Integer sequence;
/**
* 表单字段id
public String getCode() { */
return code; @Column(name = "form_field_id")
} private String formFieldId;
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getKindId() {
return kindId;
}
public void setKindId(String kindId) {
this.kindId = kindId;
}
public String getOperationId() {
return operationId;
}
public void setOperationId(String operationId) {
this.operationId = operationId;
}
public Integer getSequence() {
return sequence;
}
public void setSequence(Integer sequence) {
this.sequence = sequence;
}
} }
...@@ -359,6 +359,10 @@ ...@@ -359,6 +359,10 @@
<artifactId>lombok</artifactId> <artifactId>lombok</artifactId>
<version>1.18.12</version> <version>1.18.12</version>
</dependency> </dependency>
<dependency>
<groupId>com.huigou</groupId>
<artifactId>huigou-form</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>
...@@ -393,4 +397,4 @@ ...@@ -393,4 +397,4 @@
</plugins> </plugins>
</build> </build>
</project> </project>
\ No newline at end of file
package com.huigou.uasp.bmp.intercept; package com.huigou.uasp.bmp.intercept;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import com.huigou.context.ContextUtil; import com.huigou.context.ContextUtil;
import com.huigou.context.Operator; import com.huigou.context.Operator;
import com.huigou.context.ThreadLocalUtil; import com.huigou.context.ThreadLocalUtil;
import com.huigou.exception.ApplicationException; import com.huigou.exception.ApplicationException;
import com.huigou.uasp.bmp.operator.OperatorUIElementPermissionBuilder; import com.huigou.uasp.bmp.operator.OperatorUIElementPermissionBuilder;
import com.huigou.uasp.bpm.event.ProcessEventContext; import com.huigou.uasp.bpm.event.ProcessEventContext;
import com.huigou.uasp.form.domain.model.FormAttribute;
import com.huigou.uasp.form.repository.FormAttributeRepository;
import com.huigou.uasp.log.application.LogApplication; import com.huigou.uasp.log.application.LogApplication;
import com.huigou.uasp.log.aspect.BizLogBuilder; import com.huigou.uasp.log.aspect.BizLogBuilder;
import com.huigou.uasp.log.domain.model.BizLog; import com.huigou.uasp.log.domain.model.BizLog;
...@@ -25,31 +16,39 @@ import com.huigou.util.ClassHelper; ...@@ -25,31 +16,39 @@ import com.huigou.util.ClassHelper;
import com.huigou.util.Constants; import com.huigou.util.Constants;
import com.huigou.util.SpringBeanFactory; import com.huigou.util.SpringBeanFactory;
import com.huigou.util.StringUtil; import com.huigou.util.StringUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/** /**
* 系统权限获取 页面元素使用 * 系统权限获取 页面元素使用
* *
* @author xx * @author xx
*/ */
public class ExecuteContextInterceptor extends HandlerInterceptorAdapter { public class ExecuteContextInterceptor extends HandlerInterceptorAdapter {
@Autowired
private LogApplication logApplication;
@Autowired
private FormAttributeRepository formAttributeRepository;
private OperatorUIElementPermissionBuilder operatorUIElementPermissionBuilder; private OperatorUIElementPermissionBuilder operatorUIElementPermissionBuilder;
public void setOperatorUIElementPermissionBuilder(OperatorUIElementPermissionBuilder operatorUIElementPermissionBuilder) { public void setOperatorUIElementPermissionBuilder(OperatorUIElementPermissionBuilder operatorUIElementPermissionBuilder) {
this.operatorUIElementPermissionBuilder = operatorUIElementPermissionBuilder; this.operatorUIElementPermissionBuilder = operatorUIElementPermissionBuilder;
} }
@Autowired
private LogApplication logApplication;
/** /**
* 字段及按钮权限处理 * 字段及按钮权限处理
* *
* @author
* @param permissions * @param permissions
* @param map
* @param functionCode
* void
*/ */
private void handlePermission(Collection<Map<String, Object>> permissions, HttpServletRequest request) { private void handlePermission(Collection<Map<String, Object>> permissions, HttpServletRequest request) {
if (permissions != null && permissions.size() > 0) { if (permissions != null && permissions.size() > 0) {
...@@ -58,9 +57,18 @@ public class ExecuteContextInterceptor extends HandlerInterceptorAdapter { ...@@ -58,9 +57,18 @@ public class ExecuteContextInterceptor extends HandlerInterceptorAdapter {
Map<String, Object> noaccessDetail = new HashMap<String, Object>(permissions.size()); Map<String, Object> noaccessDetail = new HashMap<String, Object>(permissions.size());
String code = "", operationId = "", uiElmentKindId = ""; String code = "", operationId = "", uiElmentKindId = "";
for (Map<String, Object> m : permissions) { for (Map<String, Object> m : permissions) {
// 如果界面元素的formFieldId不为空,则说明该界面元素是与表单字段进行的绑定,这时需要将界面元素的code替换为:field+表单字段排序
String formFieldId = (String) m.get("formFieldId");
if (StringUtils.isNotBlank(formFieldId)) {
FormAttribute formField = formAttributeRepository.findOne(formFieldId);
if (formField != null) {
m.put("code", String.format("field%d", formField.getSequence()));
}
}
code = ClassHelper.convert(m.get("code"), String.class); code = ClassHelper.convert(m.get("code"), String.class);
operationId = ClassHelper.convert(m.get("operationId"), String.class, ""); operationId = ClassHelper.convert(m.get("operationId"), String.class, "");
uiElmentKindId = ClassHelper.convert(m.get("kindId"), String.class, ""); uiElmentKindId = ClassHelper.convert(m.get("kindId"), String.class, "");
// 判读输入的key 是否为 noaccess // 判读输入的key 是否为 noaccess
if (!StringUtil.isBlank(code) && operationId.equals("noaccess")) { if (!StringUtil.isBlank(code) && operationId.equals("noaccess")) {
if (uiElmentKindId.equals("0")) {// fieldType.equals("0")主集字段 if (uiElmentKindId.equals("0")) {// fieldType.equals("0")主集字段
...@@ -95,8 +103,8 @@ public class ExecuteContextInterceptor extends HandlerInterceptorAdapter { ...@@ -95,8 +103,8 @@ public class ExecuteContextInterceptor extends HandlerInterceptorAdapter {
if (!StringUtil.isBlank(func)) { if (!StringUtil.isBlank(func)) {
try { try {
List<Map<String, Object>> permissions = operatorUIElementPermissionBuilder.queryUIElementPermissionsByFunction(func, List<Map<String, Object>> permissions = operatorUIElementPermissionBuilder.queryUIElementPermissionsByFunction(func,
operator.getUserId(), operator.getUserId(),
!StringUtil.isBlank(functionId)); !StringUtil.isBlank(functionId));
handlePermission(permissions, request); handlePermission(permissions, request);
// 记录访问日志 // 记录访问日志
BizLog bizLog = SpringBeanFactory.getBean(request.getSession().getServletContext(), "bizLog", BizLog.class); BizLog bizLog = SpringBeanFactory.getBean(request.getSession().getServletContext(), "bizLog", BizLog.class);
......
...@@ -30,7 +30,8 @@ ...@@ -30,7 +30,8 @@
<easy-search name="formField" desc="表单字段权限选择"> <easy-search name="formField" desc="表单字段权限选择">
<sql> <sql>
select fa.attr_code code, select fa.id form_field_id,
fa.attr_code code,
fa.attr_name name, fa.attr_name name,
f.form_no, f.form_no,
0 field_type, 0 field_type,
...@@ -40,7 +41,6 @@ ...@@ -40,7 +41,6 @@
from saf_form_attribute fa join saf_form_list f on fa.form_id=f.id from saf_form_attribute fa join saf_form_list f on fa.form_id=f.id
where f.form_no=:formNo where f.form_no=:formNo
</sql> </sql>
<field name="id" code="id" type='hidden' />
<field name="kindId" code="kindId" type='hidden' /> <field name="kindId" code="kindId" type='hidden' />
<field name="operationId" code="operationId" type='hidden' /> <field name="operationId" code="operationId" type='hidden' />
<field name="编码" code="code" width="150" /> <field name="编码" code="code" width="150" />
...@@ -48,6 +48,7 @@ ...@@ -48,6 +48,7 @@
<field name="类别" code="fieldTypeTextView" width="60" type='dictionary' /> <field name="类别" code="fieldTypeTextView" width="60" type='dictionary' />
<field name="默认权限" code="fieldAuthorityTextView" width="80" type='dictionary' /> <field name="默认权限" code="fieldAuthorityTextView" width="80" type='dictionary' />
<field name="formNo" code="formNo" type='hidden' /> <field name="formNo" code="formNo" type='hidden' />
<field name="formFieldId" code="formFieldId" type='hidden' />
</easy-search> </easy-search>
</easy-search-mappings> </easy-search-mappings>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd"> http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="jdbcDao" class="com.huigou.data.jdbc.impl.JDBCDaoImpl"> <bean id="jdbcDao" class="com.huigou.data.jdbc.impl.JDBCDaoImpl">
...@@ -24,12 +24,12 @@ ...@@ -24,12 +24,12 @@
<bean id="generalRepository" class="com.huigou.data.repository.GeneralRepository"> <bean id="generalRepository" class="com.huigou.data.repository.GeneralRepository">
</bean> </bean>
<bean id="commonDomainService" class="com.huigou.data.domain.service.CommonDomainService"> <bean id="commonDomainService" class="com.huigou.data.domain.service.CommonDomainService">
<property name="generalRepository" ref="generalRepository" /> <property name="generalRepository" ref="generalRepository" />
<property name="sqlExecutorDao" ref="sqlExecutorDao" /> <property name="sqlExecutorDao" ref="sqlExecutorDao" />
</bean> </bean>
<bean id="sqlBuilder" class="com.huigou.data.query.parser.impl.SQLBuilderImpl"> <bean id="sqlBuilder" class="com.huigou.data.query.parser.impl.SQLBuilderImpl">
<property name="permissionBuilder" ref="queryPermissionBuilder" /> <property name="permissionBuilder" ref="queryPermissionBuilder" />
</bean> </bean>
...@@ -38,4 +38,4 @@ ...@@ -38,4 +38,4 @@
<property name="basePackage" value="com.huigou.**.mapper"/> <property name="basePackage" value="com.huigou.**.mapper"/>
<property name="sqlExecutorBeanName" value="sqlExecutorDao" /> <property name="sqlExecutorBeanName" value="sqlExecutorDao" />
</bean> </bean>
</beans> </beans>
\ No newline at end of file
...@@ -331,7 +331,7 @@ function initAddFormFieldPermissionHandler() { ...@@ -331,7 +331,7 @@ function initAddFormFieldPermissionHandler() {
$("#uiElementPermissionDiv #toolbar_menuaddFormFieldHandler").comboDialog({ $("#uiElementPermissionDiv #toolbar_menuaddFormFieldHandler").comboDialog({
type: 'opm', type: 'opm',
name: 'formField', name: 'formField',
dataIndex: 'code', dataIndex: 'form_field_id',
width: 800, width: 800,
lock: false, lock: false,
checkbox: true, checkbox: true,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment