8、标准组件

文章目录

文章目录

组织管理

组织管理

组织=公司,记录使用本系统的组织与各级子组织信息,顶级组织的上级组织为空。

  • ENABLED_FLAG字段为Y(未封存)的为有效数据
  • ENABLED_FLAG字段为N(封存)的为无效数据

在这里插入图片描述

部门管理

记录各级组织下的各级部门信息。各级组织自身也作为部门数据存放此。

  • ENABLED_FLAG字段为Y(未封存)的为有效数据
  • ENABLED_FLAG字段为N(封存)的为无效数据
  • 部门类型:普通部门,虚拟部门,公司,事业部
  • 部门级别:一级部门最高,最多存在五级部门,一般来讲,1级:总部部门或事业部,2级:事业部部门,3级:科系,4级:班组
  • 主要负责人:部门负责人
  • 主持人:实际工作调动后,官方调动公告发布前,间隔期内的部门负责人。当存在主持人时,主持人优先级高于主要负责人
  • 分管负责人:总经办部门的各位领导,基于分工原则,展开对其它部门的管理。各部门对应的总经办领导即为本部门分管负责人
  • 一个部门只能隶属于一个组织

在这里插入图片描述

岗位管理

针对部门内不同性质与内容的工作,作出的一种划分方式。

  • ENABLED_FLAG字段为Y(未封存)的为有效数据
  • ENABLED_FLAG字段为N(封存)的为无效数据
  • 岗位序列:管理岗(M),技术岗(T),专业岗§,作业岗(N)等
  • 部门编码:岗位所属的部门。不同部门的相同岗位名称的岗位,具有不同的岗位编码
  • 一个岗位只能隶属于一个部门

在这里插入图片描述

员工管理

显示公司各部门员工的基本信息。IS_IN_JOBY(未结束)且ENABLED_FLAGY(未封存)的为有效数据

  • IS_IN_JOBY(未结束)且ENABLED_FLAGY(未封存)的为有效数据(在职)
  • IS_IN_JOBN(未结束)或ENABLED_FLAGN(封存)的为无效数据(离职)
  • 使用员工编码唯一识别不同的员工
  • 同一个员工,可能属于多个岗位(进而对应多个部门)
    在这里插入图片描述

工作信息

记录了员工在公司各岗位的工作履历。表现为员工管理界面右边的岗位数据。

  • IS_IN_JOBY(未结束)且post_statY(在岗)且ENABLED_FLAGY(未封存)的为有效数据(在岗)
  • IS_IN_JOBN(未结束)或post_statN(在岗)或ENABLED_FLAGN(封存)的为无效数据(离岗)
  • 一个员工,可以同时在多个岗位任职
  • 一个员工,有且只能有一条有效的主岗信息。PRIMARY_POSITION_FLAGY(是否主职)的为主岗

账户管理

账户管理

显示公司各部门员工的账户信息。

  • 使用账户名唯一识别不同的账户
  • 账户名与员工编码保持一致,一个员工只能有一个账户

在这里插入图片描述

登录配置

安全策略

名称 默认值 说明
失败次数统计范围(分钟) 10 密码输入错误的次数统计的时间范围
登录失败次数 5 范围时间内密码输入错误而触发锁定动作的最高次数
登录失败锁定时长(分钟) 60 触发锁定后的锁定时长

在这里插入图片描述

密码策略

名称 默认值 说明
密码最小长度 8 设置密码的最小长度
密码复杂度要求 必须混合数字、大小写字母和符号 密码需要这四种元素组合,缺一不可
密码失效时间 0 单位:天,0表示密码不过期

在这里插入图片描述

登录策略

名称 说明
首次登陆修改密码 首次登陆强制新账户修改密码
禁止账户重复登录 同一账户不能同时在多个地点登录
角色合并 合并后,登录不在需要选择角色,菜单、权限都是合并后的
跳转URL / 登录成功以后跳转的URL

在这里插入图片描述

角色管理

管理本系统的角色信息。在左边维护角色清单,并为右边的员工分配各类角色

  • 角色编码需保持唯一
  • 当将某角色勾选为默认角色后,现有员工不受影响,基于HR系统新增或修改的员工将自动拥有此角色
  • 当将某角色取消勾选默认角色后,现有员工不受影响,基于HR系统新增或修改的员工将不再自动拥有此角色

在这里插入图片描述

默认角色管理

为不同岗位的新员工设定默认角色。在左边的角色清单中,为右边的岗位分配各类角色

  • 当为某岗位勾选默认角色后,现有岗位对应员工不受影响,基于HR系统新增或修改的岗位员工将自动拥有此角色
  • 当为某岗位取消勾选默认角色后,现有员工不受影响,基于HR系统新增或修改的岗位员工将不再自动拥有此角色
    在这里插入图片描述

功能权限

资源管理

页面资源注册

属性 描述
URL 资源路径,不以/开头,不包含项目上下文路径
类型 HTML页面,URL服务
名称 页面名称
描述 页面描述
需要登录 当勾选时,只有登录用户才能访问本资源,否则任意用户都可访问本资源
权限控制 当勾选时,登录用户只能访问经过授权的资源和资源上的权限组件,否则登录用户可以访问全部的资源和权限组件

在这里插入图片描述

权限组件注册

定义资源上可供权限控制的各类组件。当未设置时,则所有组件都可直接访问

在这里插入图片描述

权限组件属性
属性 描述
组件类型 组件所属的类型,共有四种,分别为服务端变量、表格、表单和按钮组
组件标识单 组件在页面中的唯一标识,通常为组件的ID
组件名称 组件的名称

在这里插入图片描述

权限组件元素属性
属性 描述
类型 组件中元素的类型
属性 由类型带出,不可编辑,表示元素的标识,有id,className,name等
属性值 元素的标识的具体值,如id=“save”,class=“edit”,field="gender"等
名称 元素的名称
表格组件

控制表格中的元素,首先需要定义表格的组件标识,与界面中表格的ID相同。表格中的元素主要分为三种类型

属性 描述
工具栏按钮 表格中的toolbar,表格上方的按钮
表格列按钮 表格列中的按钮
表格列 表格中的列

在这里插入图片描述

对应的代码如下

在这里插入图片描述

表单组件

控制表单中的元素,首先需要定义表单的组件标识,与界面中表单的ID相同。表单中的元素主要分为两种类型

属性 描述
字段 表单中的字段,比如邮件输入框
按钮 表单中的按钮,比如保存按钮

在这里插入图片描述

对应的代码如下

在这里插入图片描述

按钮组

主要是为了区分是表单的按钮,还是表单外的按钮,所以单独定义了一个按钮组类型

属性 描述
按钮 按钮组中的按钮,比如保存按钮

在这里插入图片描述

对应的代码如下
在这里插入图片描述

功能维护

  • 定义项目功能
  • 定义树形菜单结构,关联各级菜单对应打开的页面资源
  • 如果对应页面资源勾选了 权限控制 ,还需在 功能资源 中再次关联本资源,实现对页面资源和权限组件的授权管理(目前已实现自动关联)
    在这里插入图片描述

在这里插入图片描述

功能分配

角色权限设置

  • 选择相应的角色,勾选启用对应功能
  • 如果功能对应的资源勾选了 权限控制,且设置了对应的权限组件,则可进一步点击 权限设置 ,为该角色设置相应的组件权限

有如下注意事项

  • 除服务端变量外的组件,权限设置时,默认是启用状态
  • 不支持对同一页面属于多个功能的情况 进行权限设置, 如订单页面,可能会有多个功能会共用这个页面,在某一个功能中设置了订单页面的权限,则会导致所有功能都是同样的权限。暂时的解决方案是新建一个页面,将共有的页面include进去,然后进行配置
  • 如果用户登录时,开启了角色合并,则相应的组件权限将合并。其中服务端变量类型不支持角色合并。合并的规则是,角色拥有相同功能的,进行组件权限合并,只要其中一个角色拥有组件权限,则表示启用

在这里插入图片描述
在这里插入图片描述

账户权限设置

  • 打开账户管理界面,选择相应的用户,点击权限设置
  • 系统弹出登录用户所拥有的所有角色合并后的菜单
  • 后续操作与角色权限设置保持一致

有如下注意事项

  • 用户权限不支持配置服务端变量
  • 对于同一个资源,如果当前用户所拥有的角色已经分配了组件权限,而用户又单独配置了一次,则以用户设置的为主

在这里插入图片描述
在这里插入图片描述

总结

综合上述说明,组合五个选项,可以得出如下配置组合

资源管理 功能维护 功能分配 访问控制
登录用户 权限控制 功能资源 是否启用 权限设置
所有用户可以访问页面资源
登录用户无法访问页面资源
登录用户可以访问页面资源
登录用户无法访问页面资源
登录用户无法访问页面资源
登录用户可以访问页面资源,无法访问组件资源
登录且授权用户可以访问页面资源及组件资源

示例

原界面

在这里插入图片描述

在这里插入图片描述

新界面

在这里插入图片描述

在这里插入图片描述

数据权限

所谓数据权限,即特定范围的用户查看特定范围的数据。通过在拦截器技术,LCP在Mapper层捕获正常执行的sql语句,通过预设参数针对不同用户追加不同的where条件,使之实现对特定用户特定范围的过滤效果。

例如,不同部门的资产管理员,只能看到本部门管理范围内的资产

信息技术部资产管理员 人事总务部资产管理员 运营管理部资产管理员
在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

无数据权限

当方法未添加数据权限时,查询后将展示所有的数据

代码示例:

List<OwnAssetCard> selectCards(IRequest requestContext, OwnAssetCard dto, int page, int pageSize);

生成的sql脚本为

SELECT
	t.*,
	ty.TYPE_NAME AS assetTypeName,
	ty.IS_FIXATION AS isFixation,
	e.NAME AS USE_MAN_NAME,
	b.COMPANY_FULL_NAME AS COMPANY_NAME,
	b1.COMPANY_FULL_NAME AS orgName,
	o.NAME AS deptName,
	o1.NAME AS manageDeptName,
	o2.NAME AS bindDeptName 
FROM
	t_ams_asset_card t
	LEFT JOIN T_AMS_ASSET_TYPE ty ON ty.TYPE_NO = t.ASSET_TYPE 
	AND t.FINANCE_CODE = ty.ORG_CODE
	LEFT JOIN hr_employee e ON t.USE_MAN = e.EMPLOYEE_CODE
	LEFT JOIN fnd_company_b b ON t.FINANCE_CODE = b.COMPANY_CODE
	LEFT JOIN hr_org_unit_b o ON t.DEPT_CODE = o.UNIT_CODE
	LEFT JOIN hr_org_unit_b o1 ON t.MANAGE_DEPT = o1.UNIT_CODE
	LEFT JOIN hr_org_unit_b o2 ON t.BIND_DEPT = o2.UNIT_CODE
	LEFT JOIN fnd_company_b b1 ON t.org_code = b1.COMPANY_CODE 
WHERE
	t.ASSET_MODULE = 'OWN' 
	AND t.IS_DELETE = 'N' 
	AND t.CARD_STATUS IN ( 'IN_USE', 'IDIE', 'SCRAPPED', 'DISPOSAL' ) 
ORDER BY
	CREATION_DATE DESC

使用效果

在这里插入图片描述

创建者数据权限

com.fsl.lcp.auth.annotation.UserAuth

按数据创建者过滤数据,可以实现员工只能查看自己创建的数据,和部门权限注解互斥

参数 说明
value 数据表里的创建者字段,填写规则为"创建者字段名"。可空,默认取created_by_user字段
rule 拼接规则,默认是OR规则,取并集,AND规则是取交集。和通用数据权限注解一起使用时生效。

使用说明

  • 本注解使用在Mapper类上
  • 使用本注解后,系统基于当前登录用户上下文信息,进行sql拼接

使用示例

使用代码:

@UserAuth
List<OwnAssetCard> selectCards(IRequest requestContext, OwnAssetCard dto, int page, int pageSize);

生成的sql脚本为

SELECT
	* 
FROM
	(
	SELECT
		t.*,
		ty.TYPE_NAME AS assetTypeName,
		ty.IS_FIXATION AS isFixation,
		e.NAME AS USE_MAN_NAME,
		b.COMPANY_FULL_NAME AS COMPANY_NAME,
		b1.COMPANY_FULL_NAME AS orgName,
		o.NAME AS deptName,
		o1.NAME AS manageDeptName,
		o2.NAME AS bindDeptName 
	FROM
		t_ams_asset_card t
		LEFT JOIN T_AMS_ASSET_TYPE ty ON ty.TYPE_NO = t.ASSET_TYPE 
		AND t.FINANCE_CODE = ty.ORG_CODE
		LEFT JOIN hr_employee e ON t.USE_MAN = e.EMPLOYEE_CODE
		LEFT JOIN fnd_company_b b ON t.FINANCE_CODE = b.COMPANY_CODE
		LEFT JOIN hr_org_unit_b o ON t.DEPT_CODE = o.UNIT_CODE
		LEFT JOIN hr_org_unit_b o1 ON t.MANAGE_DEPT = o1.UNIT_CODE
		LEFT JOIN hr_org_unit_b o2 ON t.BIND_DEPT = o2.UNIT_CODE
		LEFT JOIN fnd_company_b b1 ON t.org_code = b1.COMPANY_CODE 
	WHERE
		t.ASSET_MODULE = 'OWN' 
		AND t.IS_DELETE = 'N' 
		AND t.CARD_STATUS IN ( 'IN_USE', 'IDIE', 'SCRAPPED', 'DISPOSAL' ) 
	) auth 
WHERE
	auth.created_by_user IN ( '008022' ) 
ORDER BY
	AUTH.CREATION_DATE DESC

使用效果

在这里插入图片描述

部门数据权限

com.fsl.lcp.auth.annotation.OrgAuth

按组织架构过滤数据

  • Value、rule、type组合使用,实现上级部门的员工可以查看本级以及下级部门的数据,和创建者权限注解互斥。
  • Value、rule、chargeOnly、creatorColumn组合使用,实现部门主要负责人或主持人才能查看本级及下级部门的数据,普通员工查看自己创建的数据。
参数 说明
value 数据表里的字段,可空,默认取created_org字段
rule 拼接规则,默认是OR规则,取并集,AND规则是取交集。和通用数据权限注解一起使用时生效。
type 组织权限类型,UNIT_CODE,按所有所属组织过滤,DEPT_CODE,按所有所属部门过滤,POSITIONORG_CODE,按所有所属岗位部门(含下级部门)过滤。默认值为POSITIONORG_CODE
chargeOnly true/false,默认是false。是否只有主要负责人或主持人有权限查看本级以及下属部门的所有数据, 普通员工只能查看自己创建的数据。值为true时,type字段失效不需要配置
creatorColumn 数据表里的字段,可空,默认取 created_by_user 字段。当chargeOnly参数为true时生效,当登录用户不是主要负责人或者主持人时,根据此字段匹配自己创建的数据

使用说明

  • 本注解使用在Mapper类上
  • 使用本注解后,系统基于当前登录用户上下文信息,进行sql拼接
  • 一般来讲,UNIT_CODE类型配合created_unit_code字段使用,DEPT_CODE类型配合created_dept_code字段使用,POSITIONORG_CODE类型配合created_org字段使用

使用示例

代码示例:

@OrgAuth(value = "DEPT_CODE", type = OrgAuth.Type.DEPT_CODE)
List<OwnAssetCard> selectCards(IRequest requestContext, OwnAssetCard dto, int page, int pageSize);

生成的sql脚本为

SELECT
	* 
FROM
	(
	SELECT
		t.*,
		ty.TYPE_NAME AS assetTypeName,
		ty.IS_FIXATION AS isFixation,
		e.NAME AS USE_MAN_NAME,
		b.COMPANY_FULL_NAME AS COMPANY_NAME,
		b1.COMPANY_FULL_NAME AS orgName,
		o.NAME AS deptName,
		o1.NAME AS manageDeptName,
		o2.NAME AS bindDeptName 
	FROM
		t_ams_asset_card t
		LEFT JOIN T_AMS_ASSET_TYPE ty ON ty.TYPE_NO = t.ASSET_TYPE 
		AND t.FINANCE_CODE = ty.ORG_CODE
		LEFT JOIN hr_employee e ON t.USE_MAN = e.EMPLOYEE_CODE
		LEFT JOIN fnd_company_b b ON t.FINANCE_CODE = b.COMPANY_CODE
		LEFT JOIN hr_org_unit_b o ON t.DEPT_CODE = o.UNIT_CODE
		LEFT JOIN hr_org_unit_b o1 ON t.MANAGE_DEPT = o1.UNIT_CODE
		LEFT JOIN hr_org_unit_b o2 ON t.BIND_DEPT = o2.UNIT_CODE
		LEFT JOIN fnd_company_b b1 ON t.org_code = b1.COMPANY_CODE 
	WHERE
		t.ASSET_MODULE = 'OWN' 
		AND t.IS_DELETE = 'N' 
		AND t.CARD_STATUS IN ( 'IN_USE', 'IDIE', 'SCRAPPED', 'DISPOSAL' ) 
	) auth 
WHERE
	auth.DEPT_CODE IN ( 'A15' ) 
ORDER BY
	AUTH.CREATION_DATE DESC 
	LIMIT 0,
	10

使用效果为
在这里插入图片描述

通用数据权限

自定义数据权限的拼接sql,分配给对应的用户,该用户登录的时候,只能查看该拼接sql范围内的数据

权限资源定义

定义需要拼接的过滤sql语句。内置如下系统变量,系统在执行时会自动将变值替换为实际值

名称 说明
@unitCode 所属组织
@deptCode 所属部门
@parentOrgCode 主岗上级部门
@orgCode 主岗部门
@mainPostionCode 主岗编码
@employeeCode 员工编码
@userName 账户编码
@oneLevelDept 登录员工主岗所属一级部门
@twoLevelDept 登陆员工主岗所属二级部门
@threeLevelDept 登陆员工主岗所属三级部门
@fourLevelDept 登陆员工主岗所属四级部门
@fiveLevelDept 登陆员工主岗所属五级部门

在这里插入图片描述

用户分配资源

一个用户,可以在同一资源组不同类型间分配多次,但在同一类型中只能分配一次。可以借用下面的概念理解

  • 资源组=组织
  • 资源类型=部门
  • 资源=岗位
    在这里插入图片描述

后台代码使用

com.fsl.lcp.auth.annotation.DataAuth

参数 说明
value 资源权限组编码。指明这次查询需要从哪个组挑选sql

使用说明

  • 本注解使用在Mapper类上
  • 编写sql语句时,请使用auth别名引用列名
  • 如果定义了资源sql,却没有分配给当前登陆的用户,则不会返回任何数据
  • 当在同一分组中获取到不同类型的多个条过滤条件时,使用or关系连接各条件
  • 输入不存在的资源组code,不会返回任何数据
  • 拼接后的sql有问题的,会产生sql错误

使用示例

资源定义

在这里插入图片描述

(auth.ASSET_TYPE in ('010506','010507') and auth.DEPT_CODE like '@oneLevelDept%')

代码示例

@DataAuth("own_data")
List<OwnAssetCard> selectCards(IRequest requestContext, OwnAssetCard dto, int page, int pageSize);

生成的sql脚本为

SELECT
	* 
FROM
	(
	SELECT
		t.*,
		ty.TYPE_NAME AS assetTypeName,
		ty.IS_FIXATION AS isFixation,
		e.NAME AS USE_MAN_NAME,
		b.COMPANY_FULL_NAME AS COMPANY_NAME,
		b1.COMPANY_FULL_NAME AS orgName,
		o.NAME AS deptName,
		o1.NAME AS manageDeptName,
		o2.NAME AS bindDeptName 
	FROM
		t_ams_asset_card t
		LEFT JOIN T_AMS_ASSET_TYPE ty ON ty.TYPE_NO = t.ASSET_TYPE 
		AND t.FINANCE_CODE = ty.ORG_CODE
		LEFT JOIN hr_employee e ON t.USE_MAN = e.EMPLOYEE_CODE
		LEFT JOIN fnd_company_b b ON t.FINANCE_CODE = b.COMPANY_CODE
		LEFT JOIN hr_org_unit_b o ON t.DEPT_CODE = o.UNIT_CODE
		LEFT JOIN hr_org_unit_b o1 ON t.MANAGE_DEPT = o1.UNIT_CODE
		LEFT JOIN hr_org_unit_b o2 ON t.BIND_DEPT = o2.UNIT_CODE
		LEFT JOIN fnd_company_b b1 ON t.org_code = b1.COMPANY_CODE 
	WHERE
		t.ASSET_MODULE = 'OWN' 
		AND t.IS_DELETE = 'N' 
		AND t.CARD_STATUS IN ( 'IN_USE', 'IDIE', 'SCRAPPED', 'DISPOSAL' ) 
	) auth 
WHERE
	( ( auth.ASSET_TYPE IN ( '010506', '010507' ) AND auth.DEPT_CODE LIKE 'A15%' ) ) 
ORDER BY
	AUTH.CREATION_DATE DESC 
	LIMIT 0,
	10

使用效果为

在这里插入图片描述

组合使用

可将通用数据权限与创建者数据权限,或者通用数据权限与部门数据权限组合使用

使用示例

代码示例

@DataAuth("own_data")
@OrgAuth(value = "DEPT_CODE", rule = OrgAuth.Rule.OR, type = OrgAuth.Type.DEPT_CODE)
List<OwnAssetCard> selectCards(IRequest requestContext, OwnAssetCard dto, int page, int pageSize);

生成的sql脚本为

SELECT
	* 
FROM
	(
	SELECT
		t.*,
		ty.TYPE_NAME AS assetTypeName,
		ty.IS_FIXATION AS isFixation,
		e.NAME AS USE_MAN_NAME,
		b.COMPANY_FULL_NAME AS COMPANY_NAME,
		b1.COMPANY_FULL_NAME AS orgName,
		o.NAME AS deptName,
		o1.NAME AS manageDeptName,
		o2.NAME AS bindDeptName 
	FROM
		t_ams_asset_card t
		LEFT JOIN T_AMS_ASSET_TYPE ty ON ty.TYPE_NO = t.ASSET_TYPE 
		AND t.FINANCE_CODE = ty.ORG_CODE
		LEFT JOIN hr_employee e ON t.USE_MAN = e.EMPLOYEE_CODE
		LEFT JOIN fnd_company_b b ON t.FINANCE_CODE = b.COMPANY_CODE
		LEFT JOIN hr_org_unit_b o ON t.DEPT_CODE = o.UNIT_CODE
		LEFT JOIN hr_org_unit_b o1 ON t.MANAGE_DEPT = o1.UNIT_CODE
		LEFT JOIN hr_org_unit_b o2 ON t.BIND_DEPT = o2.UNIT_CODE
		LEFT JOIN fnd_company_b b1 ON t.org_code = b1.COMPANY_CODE 
	WHERE
		t.ASSET_MODULE = 'OWN' 
		AND t.IS_DELETE = 'N' 
		AND t.CARD_STATUS IN ( 'IN_USE', 'IDIE', 'SCRAPPED', 'DISPOSAL' ) 
	) auth 
WHERE
	( ( auth.ASSET_TYPE IN ( '010506', '010507' ) AND auth.DEPT_CODE LIKE 'A15%' ) ) 
	OR auth.DEPT_CODE IN ( 'A15' ) 
ORDER BY
	AUTH.CREATION_DATE DESC 
	LIMIT 0,
	10

使用效果

在这里插入图片描述

分页集成

当在标记了数据权限的方法中使用分页时,需要在service层使用下面的API进行分页

com.fsl.lcp.auth.sqlsource.ExtensionSqlUtil

方法 说明
startPage(int pageNum, int pageSize) 分页,设置当前页码与每页条数。当pageSize设为0时,表示不分页,将返回所有符合条件的数据

实现方案

注解 说明
DataAuth 通过mybatis拦截器和注解,获取当前登录用户分配的权限拼接sql,拼接修改sql
OrgAuth 通过mybatis拦截器和注解,获取当前登录用户上下文信息,拼接修改sql
UserAuth 通过mybatis拦截器和注解,获取当前登录用户,拼接修改sql

参数管理

外观维护

设定系统的外观参数

属性 描述
系统标题 浏览器标题栏的名称
系统logo 原标准登录中显示的系统图标,已废弃
favicon 浏览器标展示本系统时显示的图标

在这里插入图片描述

首页配置

设定系统首页内仪表盘的展示内容与顺序

通过设置参数,设置首页的刷新间隔。默认为60秒

sys.home.refresh.interval=60
属性 描述
代码 显示的仪表盘代码
标题 显示的仪表盘标题
描述 显示的仪表盘描述信息
入口页面 首先需将页面注册为资源,然后选择本资源作为仪表盘界面显示在首页
排序号 从左到右,从上到下依次显示,序号小的排在前面
是否有效 如无效,则不会在首页显示

当前可用仪表盘如下

编码 名称 描述 默认启用
DB_WFL_ALL 业务流程 显示在系统集成功能中注册了的系统的当前登录用户的待办,抄送,发起,参与任务数量与列表链接
DB_WFL_TODO2 待办事项 显示当前系统当前登录用户的待办列表
PORTAL_DD_TODO 钉钉待办事项 显示所有与钉钉做了工作流集成的系统的当前登录用户的所有待办列表
PROMPT 消息提醒 显示当前系统当前登录用户的站内通知列表

在这里插入图片描述

系统参数

设置自定义系统参数。有三种参数作用域

属性 描述
全局 全局生效的参数
角色 指定角色生效的参数
用户 指定用户生效的参数

在这里插入图片描述

在这里插入图片描述

当为同一个参数设定了多个作用域时,默认情况下,参数选用优先级为:用户>角色>全局。可使用levelId参数获取指定作用域的值

@RequestMapping(value = "/profilevalue/query", method = {
   RequestMethod.GET, RequestMethod.POST} )
public ResponseData queryProfileValues(ProfileValue value) {
   
	return new ResponseData(profileService.selectProfileValues(value));
}

@RequestMapping(value = "/profilevalue/querylevelvalues", method = {
   RequestMethod.GET, RequestMethod.POST} )
public ResponseData queryLevelValues(ProfileValue value,Long levelId, @RequestParam(defaultValue = DEFAULT_PAGE) int page,
		@RequestParam(defaultValue = DEFAULT_PAGE_SIZE) int pagesize) {
   
	return new ResponseData(profileService.selectLevelValues(value,levelId, page, pagesize));
}

数据字典

又称枚举值。使用了父子结构来表达数据结构。用于对业务数据作简单的分类与总结,多配合下拉框或选择框使用。

在这里插入图片描述

在这里插入图片描述

前端控件的定义如下

<div class="col-sm-4">
	<label class="control-label col-sm-4">部门等级</label>
	<div class="col-sm-8">
		<input id="deptLevel" data-bind="value:model.deptLevel"/>
	</div>
</div>

调用方案一,将变量名与数据字典名作为参数调用指定地址,后台返回数据字典值并自动赋值至指定变量

<script src="${base.contextPath}/common/code?deptLevel=hr_org_deptlevel" type="text/javascript"></script>
<script>
  $("#deptLevel").kendoComboBox({
          dataTextField: "meaning",
          dataValueField: "value",
          filter: "contains",
          valuePrimitive: true,
          dataSource: deptLevel
  });
</script>

调用方案二,使用ajax方式,使用指定的参数,调用预定义好的后台接口,将返回值绑定至控件

$.ajax("${base.contextPath}/sys/code/getCodeValueByCode", {
   
	method: "POST",
	contentType: "application/json; charset=utf-8",
	data: JSON.stringify({
   
		code: 'hr_org_deptlevel'
	}),
	success: function (result) {
   
		$("#deptLevel2").kendoComboBox({
   
			dataTextField: "meaning",
			dataValueField: "value",
			filter: "contains",
			valuePrimitive: true,
			dataSource: result.rows
		});
	}
})

LOV定义

LOV,是一个可以让用户在一个预定义的值集(list of value)里选择,将选择结果返回到基础页面里的过程。由于LOV的使用场景非常广泛,LCP平台通过参数的快速配置,即可零代码生成LOV控件,能够极大的提升项目的开发效率。目前仅支持单选返回

属性 描述
代码 LOV的编码
描述 LOV的描述
标题 LOV显示的标题,可使用多语言编码
提示 LOV输入框的输入提示,可使用多语言编码
高度 LOV弹出框的高度
宽度 LOV弹出框的宽度
SQL类型 有三种,SQL_ID,自定义SQL,URL
SQL_ID/自定义SQL/URL 具体的查询执行内容
列数 一行放置几个查询条件
页大小 一页显示多少条查询结果
树形结构 查询结果按树形结构展示
TextField 返回值的key值
ValueField 返回值的value值
可编辑 LOV返回结果可修改

对于SQL类型

属性 描述
SQL_ID Mapper接口名.方法名,如存在重名则报错
自定义SQL 自己编写一段sql查询语句,语法同mybatis一致,支持传参
URL 访问本系统restful接口获取数据,不包含网站上下文地址

执行查询后,将结果显示在表格中。每行信息的解析规则定义如下

属性 描述
显示 行标题,可使用多语言编码
字段名 从结果中获取哪个属性显法
表格列 是否作为表格列显示在表格中
列宽度 表格列宽度
列对齐方式 内容中表格中的对齐方式
查询字段 是否作为表列的查询字段显示
列序号 列表或查询字段的显示顺序
查询配置 对查询字段作更加细致的设置

在这里插入图片描述

查询配置的说明如下

属性 描述
字段类型 数字框,值列表,下拉框,文本框,日期框
查询描述宽度 查询条件标题的宽度
查询字段宽度 查询输入框的宽度
查询字段序号 查询字段的排序号
查询字段名 针对哪个字段作查询

在这里插入图片描述

完成如上配置后,LOV的预览效果如下

在这里插入图片描述

前端控件的定义如下

<div class="col-sm-4">
	<label class="control-label col-sm-4">部门</label>
	<div class="col-sm-8">
		<input id="deptCode" data-bind="value:model.deptCode"/>
	</div>
</div>

前端通过下述写法,完成LOV的调用,返回值的获取

  • 在query方法中,可以通过为e.param数组赋值,实现自定义传参
  • 在select与change方法中,除了使用this.text()与this.value()获取返回值外,还可以访问e对象拿到更加详细的事件上下文信息
$("#deptCode").kendoLov($.extend(${
   lovProvider.getLov(base.contextPath, base.locale, "LOV_UNIT")}, {
   
	query: function (e) {
   
		e.param['enabledFlag'] = 'Y'; // 查询参数
	},
	select:function(e){
   
		console.log("LOV select 事件:" + this.value() + this.text())
	},
	change:function(e){
   
		console.log("LOV change 事件:" + this.value() + this.text())
	}
}));

流水号配置

配置流水号的生成规则,按序号拼接各规则生成最终的流水号

规则 说明
序列 按指定的位数,开始值,步长生成数字,并按设定的重置频率(日/月/季/年)归0后重头生成
日期 获取当前的日期时间值
常数 固定值
变量 使用参数传入值
UUID 生成随机的UUID值

在这里插入图片描述

调用生成流水号方法如下

@RequestMapping(value = {
   "/api/public/testCodeRule"}, method = RequestMethod.GET)
@ResponseBody
public ResponseData testCodeRule(HttpServletRequest request) throws CodeRuleException {
   
	Map<String, String> params = new HashMap<>();
	params.put("var", "V");
	String cv = codeRuleProcessService.getRuleCode("BASE_TEST", params);
	return new ResponseData(cv);
}

多语言

首先定义语言种类,系统默认内置了简中和英文

在这里插入图片描述

而后,成对定义各个词汇或语句

在这里插入图片描述

最后,使用编码,引用各个多语言。前端示例如下,系统会选择与浏览器语言代码一致的词汇,返回给客户端浏览器显示

<label class="control-label col-sm-4"><@spring.message "role.rolename"/></label>

后端示例如下:

@Autowired
private MessageSource messageSource;

messageSource.getMessage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值