3、后台框架

文章目录

文章目录

  • 平台基类
    • Controller
      • ExtensionBaseController
      • DingDingBaseController
    • Service
    • Mapper
      • Example
    • DTO
  • 常用类
    • 请求上下文
    • 上下文无关session
    • 返回上下文
    • 部门
    • 岗位
    • 员工
    • 用户
    • 角色
    • 数据字典
    • 缓存
    • 其它
  • 工具方法
    • Hutool
      • 常见组件清单
    • Apache Commons
    • Google Guava
    • Jodd
    • 唯品会
    • Facebook
    • Twitter
    • LCP
      • Excel
      • Token
      • 格式校验
      • 路径解析
      • 请求工具
      • 格式化
      • 通用工具
      • Http工具
  • 数据结构
    • 组织管理
    • 账户管理
    • 功能管理
    • 数据权限
    • 参数管理
    • 流程管理
    • 任务管理
    • 通知管理
    • 附件管理
    • 服务管理
    • 集成管理
    • 日志管理
    • 其它
    • Demo
    • 表单管理
    • 消息管理
    • 接口管理
    • 弹性域
    • 数据屏蔽
    • 接口管理
    • 弹性域
    • 数据屏蔽

平台基类

Controller

ExtensionBaseController

  • com.fsl.lcp.common.controllers.ExtensionBaseController,PC端访问控制器基类

属性

属性值 描述
DEFAULT_PAGE 分页查询时默认的页数;默认值为1
DEFAULT_PAGE_SIZE 分页查询时默认每页显示的数量;默认值为10
validator 通用校验器,SpringMVC使用JSR-303(javaEE6规范的一部分)校验规范,可以校验的范围有单个对象、List、对象中包含的 Children 元素

方法

返回值 方法 摘要
void initBinder(WebDataBinderdataBinder,HttpServletRequestrequest) 数据绑定,在实际操作中经常会碰到表单中的日期字符串和Javabean中的日期类型的属性自动转换而springMVC默认不支持这个格式的转换,所以必须要手动配置,自定义数据类型的绑定才能实现这个功能
IExtensionRequest createRequestContext(HttpServletRequestrequest) 返回IExtensionRequest接口对象,包含session相关的数据,登录用户的相关数据
Object exceptionHandler(Exceptionexception,HttpServletRequestrequest) 处理控制层所有异常并返回异常信息
void checkToken(HttpServletRequestrequest,Collectiondtos)\ checkToken(HttpSessionsession,Collectiondtos)\ checkToken(HttpServletRequestrequest,BaseDTObaseDTO)\ checkToken(HttpSessionsession,BaseDTObaseDTO) 用于校验(BaseDTO的防篡改属性)的方法,用于发布webservice时做token校验校验不通过会抛出TokenException异常。工具类TokenUtils提供用于生成和校验_token方法,请参考工具类的使用
Long getUserId(HttpServletRequestrequest) 返回当前用户ID
Long getRoleId(HttpServletRequestrequest) 返回当前用户角色ID
String getLanguage(HttpServletRequestrequest) 返回当前语言编码
String getErrorMessage(Errorserrors,HttpServletRequestrequest) 用于获取异常消息。返回的是根据当前语言环境翻译后的错误消息,errors是包含错误的对象
String nls(HttpServletRequestrequest,Stringcode,Object[]args)\ nls(HttpServletRequestrequest,Stringcode) 用于获取描述维护中当前语言环境下的消息。通常用于自定义的是错误消息。code是描述维护中消息的代码
String getStandardFieldErrorMessage(FieldErrorWithBeanfieldError,Localelocale) 该方法用于获取DTO字段校验的标准错误消息,如非空验证等。FieldErrorWithBean可直接附加field所属的bean,fieldError可直接获取目标bean。local为当前语言环境

DingDingBaseController

  • com.fsl.lcp.common.controllers.DingDingBaseController,DD端访问控制器基类

对比PC端基类,多了如下方法

方法

返回值 方法 摘要
IExtensionRequest createRequestContext(empCode) 通过员工编码返回IExtensionRequest接口对象,包含session相关的数据,登录用户的相关数据

Service

  • com.fsl.lcp.common.service.IExtensionBaseService
  • com.fsl.lcp.common.service.impl.ExtensionBaseServiceImpl
返回值 方法 摘要
List select(IRequestrequest,Tcondition,intpageNum,intpageSize) 查询分页列表信息T为查询的条件实体根据实体中的属性值进行查询,查询条件使用等号
T insert(IRequestrequest,@StdWhoTrecord) T为保存的实体保存一个实体,null的属性也会保存,不会使用数据库默认值,不会插入系统字段默认值。可通过实现IServiceListener接口或者ServiceListenerAdaptor类,并通过添加注解@ServiceListener实现beforeInsert、afterInsert方法(insert接口的AOP)
T insertSelective(IRequestrequest,@StdWhoTrecord) T为保存的实体保存一个实体,null的属性不会保存,会使用数据库默认值,会插入系统字段默认值。可通过实现IServiceListener接口或者ServiceListenerAdaptor类,并通过添加注解@ServiceListener实现beforeInsert、afterInsert方法(insert接口的AOP)
T updateByPrimaryKey(IRequestrequest,@StdWhoTrecord) 根据主键更新实体全部字段,null值会被更新,失败抛出UpdateFailedException异常可通过注册IServiceListener接口实现beforeUpdate、afterUpdate
T updateByPrimaryKeySelective(IRequestrequest,@StdWhoTrecord) 根据主键更新属性不为null的值。失败抛出UpdateFailedException异常可通过注册IServiceListener接口实现beforeUpdate、afterUpdate
T updateByPrimaryKeyOptions(IRequestrequest,@StdWhoTrecord,Criteriacriteria) 根据主键更新选定字段的值。失败抛出UpdateFailedException异常可通过注册IServiceListener接口实现beforeUpdate、afterUpdate
T selectByPrimaryKey(IRequestrequest,Trecord) 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
int deleteByPrimaryKey(Trecord) 根据主键字段进行删除,方法参数必须包含完整的主键属性。失败抛出UpdateFailedException异常可通过注册IServiceListener接口实现beforeDelete、afterDelete
List selectAll() 查询全部结果
List selectAll(IRequestiRequest) 查询全部结果
List batchUpdate(IRequestrequest,@StdWhoListlist) 可以实现批量新增、修改、删除。list参数T要求为BaseDTO或者其子类。根据T对象的__status属性值判定操作;__status值可以为DTOStatus.ADD、DTOStatus.UPDATE、DTOStatus.DELETE。新增将调用insertSelective方法,修改将调用updateByPrimaryKeySelective方法,删除将调用deleteByPrimaryKey方法
int batchDelete(Listlist) 批量删除功能。调用deleteByPrimaryKey方法
List selectOptions(IRequestrequest,Trecord,Criteriacriteria) 按条件查询,返回所有获得的数据
List selectOptions(IRequestrequest,Trecord,Criteriacriteria,IntegerpageNum,IntegerpageSize) 按条件查询,并分页

Mapper

  • com.fsl.lcp.mybatis.common.ExtensionMapper

BaseMapper接口

返回值 方法 摘要
T selectOne(Trecord); 根据实体中的属性进行查询,只能有一个返回值,有多个结果是抛出异常,查询条件使用等号
List select(Trecord) 根据实体中的属性值进行查询,查询条件使用等号
List selectAll() 查询全部结果
int selectCount(Trecord) 根据实体中的属性查询总数,查询条件使用等号
T selectByPrimaryKey(Objectkey) 根据主键字段进行查询,方法参数必须包含完整的主键属性,查询条件使用等号
T selectOptionsByPrimaryKey(Trecord) 按照主键有条件查询.
List selectOptions(@Param(BaseConstants.OPTIONS_DTO) Trecord, @Param(BaseConstants.OPTIONS_CRITERIA) Criteriacriteria) 有条件查询
int insert(Trecord) 保存一个实体,null的属性也会保存,不会使用数据库默认值
int insertSelective(Trecord) 保存一个实体,null的属性不会保存,会使用数据库默认值
int updateByPrimaryKey(Trecord) 根据主键更新实体全部字段,null值会被更新
int updateByPrimaryKeySelective(Trecord) 根据主键更新属性不为null的值
int updateByPrimaryKeyOptions(@Param(BaseConstants.OPTIONS_DTO) Trecord, @Param(BaseConstants.OPTIONS_CRITERIA) Criteriacriteria) 根据主键更新选定字段的值
int delete(Trecord) 根据实体属性作为条件进行删除,查询条件使用等号
int deleteByPrimaryKey(Objectkey) 根据主键字段进行删除,方法参数必须包含完整的主键属性

ExampleMapper接口

返回值 方法 摘要
List selectByExample(Objectexample) 根据Example条件进行查询
int selectCountByExample(Objectexample) 根据Example条件进行查询
int deleteByExample(Objectexample) 根据Example条件删除数据
int updateByExample(@Param(“record”)Trecord,@Param(“example”)Objectexample) 根据Example条件更新实体record包含的全部属性,null值会被更新
int updateByExampleSelective(@Param(“record”)Trecord,@Param(“example”)Objectexample) 根据Example条件更新实体record包含的不是null的属性值

RowBoundsMapper接口

返回值 方法 摘要
List selectByExampleAndRowBounds(Objectexample,RowBoundsrowBounds) 根据example条件和RowBounds进行分页查询
List selectByRowBounds(Trecord,RowBoundsrowBounds) 根据实体属性和RowBounds进行分页查询

Example

  • com.hand.hap.mybatis.entity.Example

mybatis的逆向工程中会生成实例及实例对应的Example子类,使用Java编程的方式为SQL查询提供where子句。

方法 说明
example.setOrderByClause(“字段名ASC”); 添加升序排列条件,DESC为降序
example.setDistinct(false) 去除重复,boolean型,true为选择不重复的记录。
criteria.andXxxIsNull 添加字段xxx为null的条件
criteria.andXxxIsNotNull 添加字段xxx不为null的条件
criteria.andXxxEqualTo(value) 添加xxx字段等于value条件
criteria.andXxxNotEqualTo(value) 添加xxx字段不等于value条件
criteria.andXxxGreaterThan(value) 添加xxx字段大于value条件
criteria.andXxxGreaterThanOrEqualTo(value) 添加xxx字段大于等于value条件
criteria.andXxxLessThan(value) 添加xxx字段小于value条件
criteria.andXxxLessThanOrEqualTo(value) 添加xxx字段小于等于value条件
criteria.andXxxIn(List) 添加xxx字段值在List条件
criteria.andXxxNotIn(List) 添加xxx字段值不在List条件
criteria.andXxxLike("%"+value+"%") 添加xxx字段值为value的模糊查询条件
criteria.andXxxNotLike("%"+value+"%") 添加xxx字段值不为value的模糊查询条件
criteria.andXxxBetween(value1,value2) 添加xxx字段值在value1和value2之间条件
criteria.andXxxNotBetween(value1,value2) 添加xxx字段值不在value1和value2之间条件

DTO

  • com.fsl.lcp.common.dto.ExtensionBaseDto

属性

类型 属性值 描述
标准字段
String createdByUser 创建人账户名
String createdUnitCode 创建人员工所属组织编码
String createdDeptCode 创建人员工所属部门编码
String createdOrg 创建人员工主岗部门编码
Date creationDate 创建时间 本字段被设置@JsonIgnore。前端使用_creationDate字段获取
String lastUpdatedByUser 修改人账户名
Date lastUpdateDate 最后修改时间 本字段被设置@JsonIgnore。前端使用_lastUpdateDate字段获取
String isDelete 逻辑删除字段
Long objectVersionNumber Record的版本号,每发生update则自增。用于实现乐观锁,无法替代数据库锁
审计字段
Boolean isAudit 审计控制字段 非数据库字段
Long relationId 多表审计批次号字段 非数据库字段
String manualExplain 多表审计操作说明 非数据库字段
Boolean openAuditNull 多表审计修改操作对null字段得控制 非数据库字段
内部使用
String __id 数据标识字段
String __status 数据状态字段.add,update,delete
Map> __tls 存放所有多语言字段的描述信息
String _token 防篡改校验字段(非数据库字段)
String sortname 排序字段
String sortorder 排序方式
String attributeCategory 扩展属性分类
String attribute1-attribute15 扩展备用字段
以下不建议在程序中使用
Long createdBy 创建人账户Id
Long lastUpdatedBy 修改人账户Id
Long lastUpdateLogin 最后登陆人账户Id,暂未使用
Long requestId 对Record最后一次操作的系统内部请求Id,暂未使用
Long programId 对Record最后一次操作的系统内部程序Id,暂未使用

一般注解

注解 描述
@Id 主键Id
@Column 数据库表字段
@Transient 暂存字段(在数据当前dto对应的库表中不存在的字段)
@JsonSerialize(using=ToStringSerializer.class) 转换为字符串。
@AuditLcpEnabled 审计功能开关。
@AuditLcpExplain 审计字段描述。
@MultiLanguageField 多语言字段
@DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”) 日期格式化转换。是Spring框架自带的,用于格式化转换前台传来的日期。绿色部分位具体的日期格式,可根据需要填写
@JsonFormat(pattern=“yyyy-MM-dd HH:mm:ss”) json日期格式转换
@NumberFormat(pattern="##,###.## ") 数字格式化转换,绿色部分位具体的日期格式,可根据需要填写
@JsonIgnore 标注序列化时需要忽略的属性。如serialVersionUID等。
@Table(name=“hss_task_orders_b”) 标注当前dto对应的数据库表hss_task_orders_b为数据库表名称。
@JsonInclude(Include.NON_NULL) 标注返回的json字符串中是否显示该字段,此处为not_null,需要显示;若是null则不需要显示。
@Children 用于投行结构中在头dto中定义对应的行。方便操作头的时候同时操作对应的行。
二次扩展
@ExtensionBaseEnabled 是否启用扩展字段。默认启用。审计功能默认只对逻辑删除字段进行审计,如果需要审计其他扩展字段,则在dto类重写扩展字段并自定义字段描述

校验注解,调用BaseController的getValidator().validate方法时校验DTO,示例代码如下

@PostMapping(value = "/submit")
public ResponseData submitRole(@RequestBody List<Role> roles, BindingResult result,
                               HttpServletRequest request) throws BaseException {
     
    getValidator().validate(roles, result);
    if (result.hasErrors()) {
     
        ResponseData rd = new ResponseData(false);
        rd.setMessage(getErrorMessage(result, request));
        return rd;
    }
    IRequest requestContext = createRequestContext(request);
    return new ResponseData(roleService.batchUpdate(requestContext, roles));
}
空检查
注解 描述
@Null 验证对象是否为null
@NotNull 验证对象是否不为null,无法查检长度为0的字符串
@NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0
@NotEmpty 检查约束元素是否为NULL或者是EMPTY
Booelan检查
注解 描述
@AssertTrue 验证Boolean对象是否为true
@AssertFalse 验证Boolean对象是否为false
长度检查
注解 描述
@Size(min=,max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=,max=) Validatesthattheannotatedstringisbetweenminandmaxincluded
日期检查
注解 描述
@Past 验证Date和Calendar对象是否在当前时间之前
@Future 验证Date和Calendar对象是否在当前时间之后
@Pattern 验证String对象是否符合正则表达式的规则
数值检查
注解 描述
@Min 验证Number和String对象是否大等于指定的值
@Max 验证Number和String对象是否小等于指定的值
@DecimalMax 被标注的值必须不大于约束中指定的最大值.这个约束的参数是一个通过BigDecimal定义的最大值的字符串表示.小数存在精度
@DecimalMin 被标注的值必须不小于约束中指定的最小值.这个约束的参数是一个通过BigDecimal定义的最小值的字符串表示.小数存在精度
@Digits 验证Number和String的构成是否合法
@Digits(integer=,fraction=) 验证字符串是否是符合指定格式的数字,interger指定整数精度,fraction指定小数精度
@Range(min=,max=) 检查数字是否介于min和max之间
@Max 验证Number和String对象是否小等于指定的值
其它
注解 描述
@Valid 递归的对关联对象进行校验,如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)
@CreditCardNumber 信用卡验证
@Email 验证是否是邮件地址,如果为null,不进行验证,算通过验证

常用类

平台提供的常用业务对象与方法

请求上下文

com.fsl.lcp.common.core.IExtensionRequest

属性

类型 属性值 描述
所属组织
List unitCodeList 设置/获取登录员工所有所属组织编码
String unitCode 设置/获取登录员工所属组织编码
String unitName 设置/获取登录员工所属组织名称
所属部门
List deptCodeList 设置/获取登录员工所有岗位对应部门的所属部门编码。如果各岗对应部门隶属于事业部则返回事业部下的2级部门编码(如果为空则返回3级部门),否则说明各岗对应部门隶属于公司,返回公司下的1级部门编码
String deptCode 设置/获取登录员工主岗对应部门的所属部门编码。如果主岗对应部门隶属于事业部则返回事业部下的2级部门编码(如果为空则返回3级部门),否则说明主岗对应部门隶属于公司,返回公司下的1级部门编码
String deptName 设置/获取登录员工主岗对应部门的所属部门名称。如果主岗对应部门隶属于事业部则返回事业部下的2级部门名称(如果为空则返回3级部门),否则说明主岗对应部门隶属于公司,返回公司下的1级部门编码
String oneLevelDept 设置/获取登录员工主岗所属一级部门
String twoLevelDept 设置/获取登陆员工主岗所属二级部门
String threeLevelDept 设置/获取登陆员工主岗所属三级部门
String fourLevelDept 设置/获取登陆员工主岗所属四级部门
String fiveLevelDept 设置/获取登陆员工主岗所属五级部门
主岗上级部门
String parentOrgCode 设置/获取登录员工主岗对应部门的父级部门编码
String parentOrgName 设置/获取登录员工主岗对应部门的父级部门名称
主岗部门
List positionOrgCodeList 设置/获取登录员工所有岗位对应的部门编码
String orgCode 设置/获取登录员工主岗对应的部门编码
String orgName 设置/获取登录员工主岗对应的部门名称
部门层级
String levelUnitcodes 设置/获取登录员工所属的部门编码层级。“A0001-A001-A01”
String levelUnitNames 设置/获取登录员工所属的部门名称层级。“开发科-信息技术部”
其它
String mainPostionCode 设置/获取登录员工主岗编码
String employeeCode 设置/获取登录员工编码
String employeeName 设置/获取登录员工姓名
String userName 设置/获取登录账户编码
String locale 设置/获取语言环境
Object attribute 设置/获取一些额外的属性,可根据以下key值获取对应的数据:_userId、_roleId、_companyId、_locale
String dataType 设置/获取内部外部员工
以下返回主键
Long roleId 设置/获取登录账户角色id
Long[] roleIds 设置/获取登录账户角色id数组(多角色)
Long companyId 【废弃】设置/获取登录账户对应的公司id
Long userId 【废弃】设置/获取登录账户id

上下文无关session

带有数据权限的mapper查询方法,会判断当前session中的用户有没有权限,而非前端请求时session没有用户信息。通过以下方法可以设置session用户信息

/**
 * 根据用户编码,给当前session设置用户的工号,组织,部门等信息.
 *
 * @param employeeCode 员工编码
 * @param request
 */
com.fsl.lcp.common.core.ExtensionRequestHelper.setCurrentUser(String employeeCode, HttpServletRequest request)

返回上下文

com.hand.hap.system.dto.ResponseData

类型 属性值 描述
String code 返回状态码
String message 返回信息
List rows 返回数据
boolean success 成功或者失败标识
Long total 总数

部门

com.hand.hap.hr.mapper.OrgUnitMapper

方法 说明
List selectAllUnitAndCharge(HrOrgUnit hrOrgUnit); 通过部门id编码等查询部门.

岗位

com.hand.hap.hr.mapper.PositionMapper

方法 说明
List getPositionByEmployeeCode(String employeeCode); 通过员工编码查询岗位.
Position getPositionByCode(String positionCode); 通过岗位编码查询岗位.

员工

com.hand.hap.hr.mapper.EmployeeMapper

方法 说明
List getUnitByEmp(String employeeCode); 根据员工编码获取主岗位对应的组织编码.
List getMainDeptDirector(String employeeCode); 通过员工编码查找部门领导.(员工主岗位-组织-员工).
List getParDeptDirector(String employeeCode); 通过员工编码查找上级部门领导.(员工主岗位-组织-上级组织-员工).
Employee queryByCode(String employeeCode); 通过员工编码查询员工.
List queryAll(Employee employee); 条件查询员工.
List selectByPostionCode(String positionCode); 通过岗位编码查询员工.
Employee queryInfoByCode(String employeeCode); 通过员工编码查询员工信息.
List selectByRoleCode(String roleCode); 通过角色编码查询员工.

用户

com.hand.hap.account.mapper.UserMapper

方法 说明
User selectByUserName(String userName); 根据用户名查询用户.
List selectUserNameByEmployeeCode(String employeeCode); 根据员工代码查询用户.
List selectByIdList(List userIds); 根据用户ID集合查询用户集合.
List selectUsers(User user); 条件查询用户.
List selectUsersOption(User user);条件查询用户.

角色

com.hand.hap.account.mapper.RoleMapper

方法 说明
List selectUserRolesByUserId(Long userId); 根据用户Id查询角色.
List selectUserRoles(Long userId); 根据用户Id获取角色.
List selectRoleNotUserRoles(RoleExt roleExt); 查询用户不具有的角色.
List selectByUser(User user); 查询用户拥有的角色.
List selectRolesByUserWithoutLang(User user); 根据用户查询角色.
int selectUserRoleCount(Long userId, Long roleId); 根据用户ID和角色ID查询用户角色分配数量.
List selectUserActiveRoles(Long userId); 根据用户ID查询用户启用状态的角色.
List selectActiveRoles(); 查询所有启用状态的角色.

数据字典

com.hand.hap.system.service.ICodeService

方法 说明
List selectCodeValuesByCodeName(IRequest request, String codeName); 根据code查询所有代码值.
CodeValue getCodeValue(IRequest request, String codeName, String value); 根据代码和值获取CodeValue.
String getCodeValueByMeaning(IRequest request, String codeName, String meaning); 根据代码和含义获取代码值.
String getCodeMeaningByValue(IRequest request, String codeName, String value); 根据代码和值获取Meaning.
String getCodeDescByValue(IRequest request, String codeName, String value); 根据代码和值获取描述.
List getCodeValuesByCode(IRequest request, String codeName); 根据code查询有效代码值.
List getChildCodeValue(IRequest request, String codeName, String value); 根据代码和值获取子快码codeValue.
List getChildCodeValue(IRequest request, String parentCodeName, String value, String childCodeName); 根据父代码、值和子代码获取子代码值.
Code getValue(IRequest request, String codeName); 从缓存中获取Code缓存中为空,则从数据库中加载并更新缓存

缓存

使用下述对象,可以访问保存在缓存中的各个系统设置

方法 说明
com.hand.hap.cache.impl.SysCodeCache 编码缓存
com.hand.hap.cache.impl.UserCache 用户缓存
com.hand.hap.api.gateway.mapper.ApiServerMapper 服务(管理)缓存
com.hand.hap.cache.impl.ApiConfigCache 接口缓存
com.hand.hap.cache.impl.DataPermissionRuleCache 数据屏蔽
com.hand.hap.cache.impl.HotkeyCache 热键缓存
com.hand.hap.cache.impl.MessageEmailConfigCache 邮件配置
com.hand.hap.cache.impl.MessageTemplateCache 邮件模板
com.hand.hap.cache.impl.ResourceCustomizationCache 资源合并配置
com.hand.hap.cache.impl.ResourceItemAssignCache 权限组件分配
com.hand.hap.cache.impl.ResourceItemCache 权限组件
com.hand.hap.cache.impl.ResourceItemElementCache 权限组件元素
com.hand.hap.cache.impl.RoleFunctionCache 角色
com.hand.hap.cache.impl.RoleResourceCache 角色资源
com.hand.hap.cache.impl.RoleResourceItemCache 角色权限组件

使用下列统一的方法完成缓存的读取,写入,刷新

方法 说明
public void reload(Long lovId) 根据LovId刷新缓存
protected void initLoad() LOV缓存初始化
public Lov getValue(String key) 根据key获取缓存数据
public void setValue(String key, Lov lov) LOV存入缓存

其它

序号 jar包 包名 用途 备注
1 hap-core com.hand.hap.account 账户管理
2 hap-core com.hand.hap.adaptor 登陆代理 功能待确认
3 hap-core com.hand.hap.attachment 附件管理 已弃用。已升级为独立组件
4 hap-core com.hand.hap.audit 审计管理 已弃用。已升级为独立组件
5 hap-core com.hand.hap.cache 缓存管理及内建缓存实现
6 hap-core com.hand.hap.code.rule 编码规则
7 hap-core com.hand.hap.core 底层核心接口
8 hap-core com.hand.hap.core.annotation 底层注解
9 hap-core com.hand.hap.core.components 底层组件
10 hap-core com.hand.hap.core.exception 底层异常
11 hap-core com.hand.hap.core.i18n 底层多语言
12 hap-core com.hand.hap.core.impl 底层核心接口实现
13 hap-core com.hand.hap.core.interceptor 底层拦截器
14 hap-core com.hand.hap.core.json 底层json处理
15 hap-core com.hand.hap.core.util 底层工具类
16 hap-core com.hand.hap.core.validator 底层验证
17 hap-core com.hand.hap.core.web 底层web封装
18 hap-core com.hand.hap.db 数据库脚本初始化
19 hap-core com.hand.hap.demo.ws webservice示例 示例
20 hap-core com.hand.hap.excel excel导入导出 已弃用。已升级为独立工具类
21 hap-core com.hand.hap.extensible 扩展字段
22 hap-core com.hand.hap.flexfield 弹性域 已弃用。
23 hap-core com.hand.hap.fnd 公司管理
24 hap-core com.hand.hap.function 功能管理
25 hap-core com.hand.hap.generator 代码生成
26 hap-core com.hand.hap.hr 组织管理
27 hap-core com.hand.hap.intergration 接口管理 已弃用。使用服务管理替代
28 hap-core com.hand.hap.lock 锁管理
29 hap-core com.hand.hap.message 消息管理 架构待确认
30 hap-core com.hand.hap.metrics 系统指标
31 hap-core com.hand.hap.mybatis mybatis增强
32 hap-core com.hand.hap.script 在java中执行js
33 hap-core com.hand.hap.security 数据屏蔽 已弃用。已升级为独立工具类
34 hap-core com.hand.hap.system 系统管理
35 hap-core com.hand.hap.testext 系统示例 示例
36 hap-gateway com.hand.hap.api 服务管理
37 hap-job com.hand.hap.job 计划任务
38 hap-mail com.hand.hap.mail 邮件管理
39 hap-oauth2 com.hand.hap.security.oauth 单点登录
40 hap-task com.hand.hap.task 人工任务
41 hap-workflow com.hand.hap.activiti 工作流
42 lcp.extension com.fsl.lcp.activiti 工作流增强
43 lcp.extension com.fsl.lcp.audit 审计组件
44 lcp.extension com.fsl.lcp.auth 数据权限组件
45 lcp.extension com.fsl.lcp.upload 上传组件
46 lcp.extension com.fsl.lcp.utils 工具类

工具方法

Hutool

Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是我项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。

Hutool是Hu + tool的自造词,谐音“糊涂”,寓意追求“万事都作糊涂观,无所谓失,无所谓得”的境界。

推荐优先使用Hutool。当不能满足需求时再选择Apache Commons或业界其它通用工具包。不建议自行编写工具包。下表是常见的组件清单,完整清单请参看官网

常见组件清单

类名 说明 对应Commons
cn.hutool.core.bean.BeanUtil Java对象处理工具 BeanUtils
cn.hutool.core.codec.Base64 Base64编解码 Codec
cn.hutool.crypto.SecureUtil 摘要算法,对称加密,非对称加密算法 Codec
cn.hutool.core.collection.CollUtil 集合的增强,过滤,循环,排序等 Collections
cn.hutool.core.map.MapUtil Map的创建,过滤,排序等 Collections
cn.hutool.core.util.ZipUtil 进行zip、gzip、zlib压缩 Compress
cn.hutool.core.text.csv.CsvUtil Csv读写 CSV
cn.hutool.extra.mail.MailUtil 邮件工具类 Email
cn.hutool.core.io.IoUtil 流拷贝,Stream转Reader、Writer,读取流中的内容,写入到流,关闭流 IO
cn.hutool.core.io.FileUtil 文件操作(新建、删除、复制、移动、改名等),文件判断(判断文件或目录是否非空,是否为目录,是否为文件等等),绝对路径,文件名,读操作,写操作 IO
cn.hutool.core.io.FileTypeUtil 通过读取文件的首部几个二进制位来判断常用的文件类型 IO
cn.hutool.core.util.ObjectUtil 对象克隆,对比,判断,序列化工具 Lang
cn.hutool.core.date.DateUtil 获取当前时间,字符串转日期,格式化日期输出,获取日期时间的某个部分,获取开始和结束时间,日期时间偏移计算,日期时间差计算,计时器,其它等 Lang
cn.hutool.core.util.NumberUtil 数学加减乘除,保留小数,数字格式化,判断是否为数字,数字随机数,整数列表,其它数学公式 Lang
cn.hutool.core.util.StrUtil 字符串前后缀,连接,填充,包裹,去重,子串,分隔,判断空,格式化字符串等 Lang
cn.hutool.core.util.HexUtil 16进制字符串工具 Lang
cn.hutool.core.convert.Convert Java常见类型转换,半角和全角转换,16进制转换,Unicode和字符串转换,编码转换,时间单位转换,金额/数字大小写转换,原始类和包装类转换 Lang
cn.hutool.core.util.ArrayUtil 判空,新建泛型数组,调整、合并、克隆、拆分、过滤、zip数据,是否包含元素、包装和拆包、判断对象是否为数组、转为字符串 Lang
cn.hutool.core.util.RandomUtil 随机生成数字,字符串,颜色,随机从集合中选择元素等 Lang
cn.hutool.core.util.EscapeUtil Escape转义工具 Lang
cn.hutool.core.util.URLUtil Url编解码,格式化,读取工具 Lang
cn.hutool.core.util.IdUtil 唯一ID生成器,UUID、ObjectId(MongoDB)、Snowflake(Twitter) Lang
cn.hutool.core.util.IdcardUtil 15/18身份证转换,获取年份 Lang
cn.hutool.extra.ftp.Ftp ftp工具类 Net
cn.hutool.core.lang.Validator 验证给定字符串是否满足指定格式,例如邮件、电话、生日等 Validator
cn.hutool.core.thread.ThreadUtil 提供线程池并执行线程 -
cn.hutool.core.util.ImageUtil 对图片进行缩放、裁剪、翻转、转为黑白、转为其它格式、加水印等 -
cn.hutool.http.HttpUtil 轻量级Http请求工具类 -
cn.hutool.extra.qrcode.QrCodeUtil 二维码工具类 -
cn.hutool.poi.excel.ExcelUtil excel工具类 -

Apache Commons

Apache Commons是Apache软件基金会的项目。Commons的目的是提供可重用的、开源的Java代码。

下表是常见且持续更新的组件清单,完整清单请参看官网

包名 说明
BeanUtils 对象处理工具
Codec 加解密,编码工具
Collections 集合框架操作
Compress 压缩/解压缩
Configuration 配置文件读写
CSV csv文件操作
DBCP 数据库连接池
DbUtils 数据库操作
Email email操作
FileUpload 文件上传
IO 输入输出流操作
Lang 基本对象增强
Logging 通用日志
Net 网络操作
Pool 通用对象池
Text 字符串操作
Validator 数据校验

Google Guava

Guava工程包含了若干被Google的Java项目广泛依赖的核心库。这个库是为了方便编码,并减少编码错误。这个库提供用于集合,缓存,支持原语,并发性,常见注解,字符串处理,I/O和验证的实用方法。

Jodd

Jodd是一个普通开源Java包。你可以把Jodd想象成Java的"瑞士军刀",不仅小,锋利而且包含许多便利的功能。

Jodd = tools + ioc + mvc + db + aop + tx + json + html

唯品会

唯品会Java开发基础类库,综合各门各派众多开源类库的精华而成, 让开发人员避免底层代码的重复开发,默认就拥有最佳实践,尤其在性能的方面。

Facebook

Facebook使用的java通用类库

Twitter

Twitter使用的java通用类库

LCP

Excel

com.fsl.lcp.utils.CommonExcelUtil

返回值 方法 摘要
ExcelReader getReader(HttpServletRequest request) 从request中获取上传的文件并转换为 ExcelReader 对象
ExcelWriter getWriter() 获取一个ExcelWriter,默认标题颜色值:IndexedColors.GREY_50_PERCENT
void writeToResponse(HttpServletRequest request, HttpServletResponse response, ExcelWriter writer) 将Excel 写出到 response,并从request中获取文件名完成文件下载
void writeToResponse(HttpServletRequest request, HttpServletResponse response, ExcelWriter writer, String fileName) 将Excel 写出到 response,使用指定的文件名完成文件下载
void checkFieldEmpty(Object bean, List list, String template, Object param) 校验bean 中带 ExtensionNotEmpty 注解的属性值是否为null或空,是则往list中添加错误信息

Token

com.hand.hap.security.TokenUtils

返回值 方法 摘要
String getSecurityKey(HttpSession session) 从session中取得securityKey
String setSecurityKey(HttpSession session) 生成一个uuid形式的securityKey,并设置到session中
String generateToken(String securityKey,BaseDTO dto) 使用指定的securityKey为dto生成_token
void generateAndSetToken(String securityKey,BaseDTO dto) 生成_token,并设置到dto
void generateAndSetToken(String securityKey,Collection dtos) 批量生成,设置_token
void checkToken(String securityKey,BaseDTO dto) 使用指定的securityKey对BaseDTO中的_token进行校验\检验不通过会抛出TokenException异常
void checkToken(HttpSession session,BaseDTO dto) 从session取得securityKey并进行校验\检验不通过会抛出TokenException异常
void checkToken(String securityKey,Collection baseDTOs) 指定的securityKey循环调用checkToken(String,BaseDTO)方法进行校验
void checkToken(HttpSession session,Collection baseDTOs) 从session取得securityKey;循环调用checkToken(String,BaseDTO)方法进行校验

格式校验

com.hand.hap.core.util.ValidateUtils

返回值 方法 摘要
boolean validateEmail(String email) 校验邮箱格式
boolean validatePhone(String phone) 校验电话格式
boolean validateUserName(String userName) 校验用户名格式

路径解析

com.hand.hap.core.util.PathResolver

返回值 方法 摘要
String getRealPath(HttpServletRequest request,String path) 解析路径返回真是路径
String getRealPath(String basePath,String path) 解析路径返回真是路径;basePath:webapp的路径
String getRelativePath(String path) 返回相对路径

请求工具

com.hand.hap.core.util.RequestUtil

返回值 方法 摘要
boolean isAjaxRequest(HttpServletRequest request) 判断是否ajax请求
boolean isAPIRequest(HttpServletRequest request) 判断请求路径中是否带/api/
String getCookieValue(HttpServletRequest request,String name) 返回cookie中对应的值

格式化

com.hand.hap.core.util.FormatUtil

返回值 方法 摘要
String formatFileSize(Longsize) 根据传入的文件大小long值,格式化为:“B”,“kB”,“MB”,“GB”,"TB"格式返回

通用工具

com.hand.hap.core.util.CommonUtils

返回值 方法 摘要
void foreach(Collectioncollection,Consumerclosure) 使用消费者模式处理collection的逻辑
int indexOf(Objecte,Object…arr) 找到e对象在arr数组中的index下标值。\如果e为空,则返回arr中第一个为空的下标值。\如果找不到对应的,则返回-1
boolean in(Objecte,Object…arr) 判断e对象是否在arr数组中
boolean eq(Objecto1,Objecto2) 判断o1和o2对象是否相等
T nvl(T…args) 返回args数组第一个不为空的对象,否则返回null

Http工具

com.fsl.lcp.utils.HttpClientUtil

返回值 方法 说明
String doPostJson(String url,String json) POST调用
String doGet(String url,Map param) Get调用
String sendPostRequest(String reqURL,String data,String authorization) 发送Post请求(json格式)带authorization的http的post请求
String postForm(String url,Map map) 以form表单的方式提交post请求
String doPostSoap1_1(String postUrl,String soapXml,String soapAction) 使用SOAP1.1发送消息,调用webservice

数据结构

当前平台共计170张表,环境发布时需至少迁移85张表

组织管理

表名 中文名 是否迁移 备注
FND_COMPANY_B 组织 使用MQ时,可不迁移
FND_COMPANY_TL 组织多语言
HR_ORG_UNIT_B 部门 使用MQ时,可不迁移
HR_ORG_UNIT_TL 部门多语言
HR_ORG_POSITION_B 岗位 使用MQ时,可不迁移
HR_ORG_POSITION_TL 岗位多语言
HR_EMPLOYEE 员工 使用MQ时,可不迁移
HR_EMPLOYEE_ASSIGN 员工岗位关系 使用MQ时,可不迁移

账户管理

表名 中文名 是否迁移 备注
SYS_USER 用户 使用MQ时,可不迁移
SYS_PREFERENCES 用户首选项配置
SYS_USER_DASHBOARD 用户仪表盘
SYS_USER_SHORTCUT 用户功能快捷方式
SYS_USER_LOGIN 用户登录日志
SYS_ACCOUNT_RETRIEVE 用户找回记录
SYS_ROLE_B 角色
SYS_ROLE_TL 角色多语言
SYS_USER_ROLE 用户角色关系
LCP_ROLE_POSITION 默认角色岗位关系

功能管理

表名 中文名 是否迁移 备注
SYS_RESOURCE_B 资源
SYS_RESOURCE_TL 资源多语言
SYS_RESOURCE_CUSTOMIZATION 资源个性化
SYS_RESOURCE_ITEM_B 资源组件
SYS_RESOURCE_ITEM_TL 资源组件多语言
SYS_RESOURCE_ITEM_ELEMENT 资源组件元素
SYS_FUNCTION_B 功能
SYS_FUNCTION_TL 功能多语言
SYS_FUNCTION_RESOURCE 功能资源关系
SYS_ROLE_FUNCTION 角色功能关系
SYS_RESOURCE_ITEM_ASSIGN 资源组件分配
SYS_ROLE_RESOURCE_ITEM 旧版资源组件分配

数据权限

表名 中文名 是否迁移 备注
LCP_AUTHORITY_RESOURCE 权限资源定义
LCP_RESOURCE_USER 权限资源分配

参数管理

表名 中文名 是否迁移 备注
SYS_CONFIG 全局配置
SYS_DASHBOARD_B 首页配置
SYS_DASHBOARD_TL 首页配置多语言
SYS_PROFILE 系统参数
SYS_PROFILE_VALUE 系统参数明细
SYS_CODE_B 数据字典
SYS_CODE_TL 数据字典多语言
SYS_CODE_VALUE_B 数据字典值
SYS_CODE_VALUE_TL 数据字典值多语言
SYS_LOV LOV配置
SYS_LOV_ITEM LOV配置项
SYS_CODE_RULES_HEADER 流水号配置
SYS_CODE_RULES_LINE 流水号段配置
SYS_HOTKEY_B 快捷键配置
SYS_HOTKEY_TL 快捷键多语言
SYS_LANG_B 多语言配置
SYS_PROMPTS 多语言描述

流程管理

表名 中文名 是否迁移 备注
历史记录
ACT_HI_PROCINST 历史流程实例
ACT_HI_ACTINST 历史流程活动
ACT_HI_TASKINST 历史流程任务
ACT_HI_IDENTITYLINK 历史任务参与者
ACT_HI_COMMENT 历史任务审批意见
ACT_HI_VARINST 历史任务变量
ACT_HI_ATTACHMENT 历史任务附件
ACT_HI_DETAIL 历史任务表单
运行记录
ACT_RU_EXECUTION 流程实例
ACT_RU_TASK 流程任务
ACT_RU_IDENTITYLINK 任务参与者
ACT_RU_VARIABLE 流程任务变量
ACT_RU_EVENT_SUBSCR 流程活动监听
运行任务
ACT_RU_JOB 流程异步任务
ACT_RU_TIMER_JOB 流程定时任务
ACT_RU_SUSPENDED_JOB 流程暂停任务
ACT_RU_DEADLETTER_JOB 流程挂起任务
模型与定义
ACT_RE_MODEL 流程定义 导入顺序7
ACT_RE_DEPLOYMENT 流程布署信息 导入顺序5
ACT_RE_PROCDEF 流程布署定义
用户组织
ACT_ID_GROUP 用户组 导入顺序1
ACT_ID_USER 用户基本信息 导入顺序1
ACT_ID_INFO 用户扩展信息
ACT_ID_MEMBERSHIP 用户用户组关系 导入顺序2
其它
ACT_GE_BYTEARRAY 流程资源定义 导入顺序6
ACT_GE_PROPERTY 系统相关属性
ACT_EXCEPTION 流程运行异常
ACT_EVT_LOG 流程事件日志
ACT_PROCDEF_INFO 流程修订信息
标准扩展
WFL_APPROVE_STRATEGY 审批方式配置
WFL_APPROVE_CANDIDATE_RULE 审批规则配置
WFL_BUSINESS_RULE_HEADER 审批权限配置
WFL_BUSINESS_RULE_LINE 审批权限明细
WFL_APPROVE_CHAIN_HEADER 审批链配置
WFL_APPROVE_CHAIN_LINE 审批链明细
LCP扩展
LCP_WFL_CC 流程抄送配置
LCP_WFL_NEXT_NODE_PERSON 动态指定审批人
LCP_WFL_FUCTION_DEPT 部门职能关系
LCP_WFL_FUCTION_DEPT_EMP 部门职能员工关系
LCP_WFL_MAIN_FUNCTION 流程节点主担配置
LCP_WFL_MOBILE_CONFIG 流程移动端配置
LCP_DD_PROCESS_TEMPLATE 钉钉工作流模板
LCP_DD_PROCESS_INST 钉钉与LCP工作流实例关系
LCP_DD_PROCESS_TASK 钉钉与LCP工作流任务关系
LCP_DD_NOTIFY_MAPPER 钉钉通知与LCP工作流任务关系

任务管理

表名 中文名 是否迁移 备注
QRTZ_CRON_TRIGGERS Cron类型触发器 导入顺序3
QRTZ_SIMPLE_TRIGGERS 简单类型触发器 导入顺序3
QRTZ_SIMPROP_TRIGGERS 简单周期触发器 导入顺序3
QRTZ_BLOB_TRIGGERS 自定义类型触发器 导入顺序3
QRTZ_TRIGGERS 已定义的触发器 导入顺序2
QRTZ_FIRED_TRIGGERS 执行中的触发器
QRTZ_PAUSED_TRIGGER_GRPS 已暂停的触发器
QRTZ_CALENDARS 调度日历
QRTZ_SCHEDULER_STATE 调度状态
QRTZ_LOCKS 调度分布式锁
QRTZ_JOB_DETAILS 任务明细 导入顺序1
SYS_JOB_RUNNING_INFO 任务调度日志
SYS_TASK_DETAIL_B 任务明细 模块未使用
SYS_TASK_DETAIL_TL 任务多语言 模块未使用
SYS_PARAMETER_CONFIG 任务参数 模块未使用
SYS_TASK_ASSIGN 任务授权 模块未使用
SYS_TASK_EXECUTION 任务执行信息 模块未使用
SYS_TASK_EXECUTION_DETAIL 任务执行日志 模块未使用

通知管理

表名 中文名 是否迁移 备注
LCP_NOTIFY_TEMPLATE 通知模板
LCP_NOTIFY_MESSAGE_RECORD 通知执行记录
LCP_NOTIFY_SYNC_RECORD 站内通知推送进度

附件管理

表名 中文名 是否迁移 备注
SYS_ATTACH_CATEGORY_B 附件类型 模块未使用
SYS_ATTACH_CATEGORY_TL 附件类型多语言 模块未使用
SYS_ATTACHMENT 附件 模块未使用
SYS_FILE 文件 模块未使用
LCP_ASSOCIATION_FILE 附件
LCP_ASSOCIATION_FILE_AUDIT_HEAD 附件审计
LCP_ASSOCIATION_FILE_AUDIT_LINE 附件审计明细

服务管理

表名 中文名 是否迁移 备注
API_CONFIG_SERVER 生产者配置
API_CONFIG_INTERFACE 生产者接口
API_CONFIG_APPLICATION 消费者配置
API_CLIENT_INTERFACE_LIMIT 消费者限制
SYS_OAUTH_CLIENT_DETAILS 消费者授权
SYS_TOKEN_LOGS 授权日志
API_INVOKE_RECORD 服务调用
API_INVOKE_RECORD_DETAILS 服务调用明细

集成管理

表名 中文名 是否迁移 备注
LCP_SYSTEM_INTEGRATION 系统集成配置表
LCP_SYSTEM_INTEGRATION_EXT 系统集成扩展(任务列表)配置表
LCP_WX_SYSTEM_INTEGRATION 微信集成配置表

日志管理

表名 中文名 是否迁移 备注
LCP_MQ_RECORD MQ消息日志
LCP_DD_SERVICE_RECORD 钉钉消息日志
LCP_API_SERVICE_RECORD RESTFul消息日志

其它

表名 中文名 是否迁移 备注
LCP_SELECT_GROUP 条件集配置

Demo

表名 中文名 是否迁移 备注
SYS_USER_DEMO_B 用户 模块未使用
SYS_USER_DEMO_TL 用户多语言 模块未使用
ACT_DEMO_VACATION 请假 模块未使用
ACT_DEMO_TEST 请假2 模块未使用
HAP_DEMO 演示 模块未使用

表单管理

表名 中文名 是否迁移 备注
SYS_FORMS 表单设计 模块未使用

消息管理

表名 中文名 是否迁移 备注
SYS_MESSAGE_ACCOUNT 消息发送账户 模块未使用
SYS_MESSAGE_TEMPLATE 消息模板 模块未使用
SYS_MESSAGE 消息 模块未使用
SYS_MESSAGE_ATTACHMENT 消息附件 模块未使用
SYS_MESSAGE_RECEIVER 消息接收设置 模块未使用
SYS_MESSAGE_TRANSACTION 消息传输信息 模块未使用
SYS_MESSAGE_EMAIL_CONFIG 邮箱配置 模块未使用
SYS_MESSAGE_EMAIL_ACCOUNT 邮箱发送账号 模块未使用
SYS_MESSAGE_EMAIL_PROPERTY 邮箱属性 模块未使用
SYS_MESSAGE_EMAIL_WHITE_LT 邮箱白名单 模块未使用

接口管理

表名 中文名 是否迁移 备注
SYS_IF_CONFIG_HEADER_B 系统定义 模块未使用
SYS_IF_CONFIG_HEADER_TL 系统多语言 模块未使用
SYS_IF_CONFIG_LINE_B 接口定义 模块未使用
SYS_IF_CONFIG_LINE_TL 接口多语言 模块未使用
SYS_IF_INVOKE_INBOUND 接口请求日志 模块未使用
SYS_IF_INVOKE_OUTBOUND 接口响应日志 模块未使用

弹性域

表名 中文名 是否迁移 备注
FND_FLEX_MODEL 模板 模块未使用
FND_FLEX_MODEL_COLUMN 模板列定义 模块未使用
FND_FLEX_RULE_SET 模板规则集 模块未使用
FND_FLEX_RULE 规则 模块未使用
FND_FLEX_RULE_DETAIL 规则明细 模块未使用
FND_FLEX_RULE_FIELD 模板列规则 模块未使用

数据屏蔽

表名 中文名 是否迁移 备注
SYS_PERMISSION_RULE 规则 模块未使用
SYS_PERMISSION_RULE_DETAIL 规则明细 模块未使用
SYS_PERMISSION_RULE_ASSIGN 规则分配 模块未使用
SYS_PERMISSION_TABLE 数据表 模块未使用
SYS_PERMISSION_TABLE_RULE 数据表规则 模块未使用
SYS_MESSAGE_EMAIL_PROPERTY 邮箱属性 模块未使用
SYS_MESSAGE_EMAIL_WHITE_LT 邮箱白名单 模块未使用

接口管理

表名 中文名 是否迁移 备注
SYS_IF_CONFIG_HEADER_B 系统定义 模块未使用
SYS_IF_CONFIG_HEADER_TL 系统多语言 模块未使用
SYS_IF_CONFIG_LINE_B 接口定义 模块未使用
SYS_IF_CONFIG_LINE_TL 接口多语言 模块未使用
SYS_IF_INVOKE_INBOUND 接口请求日志 模块未使用
SYS_IF_INVOKE_OUTBOUND 接口响应日志 模块未使用

弹性域

表名 中文名 是否迁移 备注
FND_FLEX_MODEL 模板 模块未使用
FND_FLEX_MODEL_COLUMN 模板列定义 模块未使用
FND_FLEX_RULE_SET 模板规则集 模块未使用
FND_FLEX_RULE 规则 模块未使用
FND_FLEX_RULE_DETAIL 规则明细 模块未使用
FND_FLEX_RULE_FIELD 模板列规则 模块未使用

数据屏蔽

表名 中文名 是否迁移 备注
SYS_PERMISSION_RULE 规则 模块未使用
SYS_PERMISSION_RULE_DETAIL 规则明细 模块未使用
SYS_PERMISSION_RULE_ASSIGN 规则分配 模块未使用
SYS_PERMISSION_TABLE 数据表 模块未使用
SYS_PERMISSION_TABLE_RULE 数据表规则 模块未使用

你可能感兴趣的:(FSL研发体系文档,java)