EOS快速开发平台项目开发规范草稿

 开发 规范说明 1. 构建包

 1.1. 项目名称: com.skygp.fastdevelop

 1.2. 构建包命名 项目名称+构建包名(模块名)

 如: com.skygp.fastdevelop.demo 1.3. 系统 各业务构建包 说明 com.skygp.fastdevelop.accOA 财务处办公应用模块

 com.skygp.fastdevelop.busOA 企管处办公应用模块

 com.skygp.fastdevelop.disOA 总调办公应用模块

 com.skygp.fastdevelop.engOA 工程技术办公应用模块

 com.skygp.fastdevelop.hrOA 人事处办公应用模块

 com.skygp.fastdevelop.infOA 信息处办公应用模块

 com.skygp.fastdevelop.matOA 物贸处办公应用模块

 com.skygp.fastdevelop.offOA 办公室办公应用模块

 com.skygp.fastdevelop.plaOA 规划处办公应用模块

 com.skygp.fastdevelop.pubOA 公共办公应用模块

 com.skygp.fastdevelop.quaOA 质量处办公应用模块

 com.skygp.fastdevelop.safOA 安全处办公应用模块

 com.skygp.fastdevelop.thoOA 思政处办公应用模块

 com.skygp.fastdevelop.jqueryMobile 移动端应用模块

 com.skygp.fastdevelop.bpsrule BPS 参与者规则维护模块

 com.skygp.fastdevelop.pub 通用公共功能,如各种通用 的公共 组件

 com.skygp.fastdevelop.main 主模块,如系统主页面、系统设置、用户管理等功能

 com.skygp.fastdevelop.ws 对内、外服务接口功能

  以下部分构件包一般情况不需要做修改:

 org.gocom.cap.workflow.client.task 我的任务模块功能包

 2. 数据模型开发

 精选文库

 2.1. 数据集 一般根据业务名称或功能模块来命名数据集。

 2.2. 数据实体 数据实体名称与数据库表名对应,如表 HR_OUT_LEAVE_APPLY 对应实体名为 HrOutLeaveApply。

 2.2.1. 主键生成 一般业务表单数据主键用”自动生成 uuid” 2.2.2. 字段类型 日期(不保存时间)类型用 Date; 日期时间(保存时间)类型用 TimeStamp; 其它常规数据类型与数据库类型对应即可。

 3. JSP 开发

 3.1. JSP 创建 通过功能向导自动生成必要 jsp 文件; 每个页面的头部必须加上注释说明和资源引入,并在 title 中描述标题。

 3.1.1. 一般需求 jsp 示例 HrAnnualLeaveApplyForm 新增表单页面

 HrAnnualLeaveApplyEdit 修改编辑页面

 HrAnnualLeaveApplyFormAudit 表单审核页面

 HrAnnualLeaveApplyList 数据列表查询页面

  3.1.2. 注释 <%--

 - Author(s): 开发员拼音驼峰全名(如:LiLong)

  - Date: 2015-03-01 日期

 - Description: 功能说明及一些重要流程说明描述

 --%>

 3.1.3. head 标签 <head>

 精选文库

 <%@include file="/common/common.jsp"%> <%@include file="/coframe/tools/skins/common.jsp" %>

  <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

  <script src="<%=contextPath %>/pub/form/form.js" type="text/javascript" ></script>

  <script type="text/javascript">

 (function(){

 nui.context="<%=contextPath %>";

  })();

 </script>

 <title>

 页面标题

  </title>

  </head>

 3.2. 弹 弹 出窗口 新增表单、编辑表单一般用弹出窗口形式, 窗口一般最小宽度为 800px,高度根据表单内容决定; nui 打开窗口时,页面数据传递,按收页面必须要 clone 后再使用,如:

 //页面间传输json数据 function setFormData(data){ //跨页面传递的数据对象,克隆后才可以安全使用 var infos = nui.clone(data); //保存list页面传递过来的页面类型:add表示新增、edit表示编辑 nui.getbyName("pageType").setValue(infos.pageType); //如果是点击编辑类型页面 if (infos.pageType == "edit") { var json = infos.record; var form = new nui.Form("#dataform1");//将普通form转为nui的form form.setData(json); form.setChanged(false); } }

 精选文库

  3.3. 移动端 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

 3.4. 代码片段示例

 精选文库

 4. 逻辑构件开发

  4.1. 逻辑构件命令规则 实体名 + biz,全部小写,如 hroutleaveapplybiz; 通过功能向导自动生成必要逻辑构件。

 4.2. 逻辑构件示例 一般表单审核业务需要逻辑构件示例说明 4.2.1. addHrOutLeaveApply(HrOutLeaveApply) 添加表单逻辑流

 精选文库

  主要操作说明 getPrimaryKey

 设置主键

  createProcessInstance

 创建流程实例

  startProcessInstAndFinishFirstWorkItem 启动流程实例并完成第一工作项

 精选文库

 事务处理

 4.2.2. auditHrOutLeaveApply(HrOutLeaveApply, PubBpsAudit, Long, DataObject[]) 表单审批逻辑流

 审批逻辑流不会自动生成,需要手动创建(一般从其它功能中复制粘贴、修改而来)。

 参数、变量参考示例

 精选文库

  主要操作说明 queryWorkItemDetail 查询工作项明细,为后续操作提供数据

  赋值

 对审核记录数据赋值

 精选文库

 finishWorkItem

 完成工作项

  activityRollBack

 审核不通过退回申请人修改

  事务处理

 4.2.3. deleteHrOutLeaveApplys(HrOutLeaveApply[]) 删除数据逻辑流

 精选文库

  参数、变量参考示例

 4.2.4. getOffWorkResApplyByProcessinstid(Long) 根据流程实例 ID 查询表单数据

 精选文库

  参数 、变量参考示例

 4.2.5. updateHrOutLeaveApply(HrOutLeaveApply,String) 更新表单数据

 精选文库

  参数、变量参考示例

 主要操作说明 赋值

 对修改人和修改时间赋值

 精选文库

 回退提交

 对回退后重新编辑提交业务的处理(提交到审核不通过节点)

  事 务处理

 精选文库

 5. 命名 sql 开发

 5.1. 命名 sql 集命名规则 根据功能对应数据实体命名,如实体 HrOutLeaveApply 对应命名 sql 集为 hrOutLeaveApply.namingsqlx。

 5.2. 代码片段示例

 6. 运算逻辑开发

 6.1. 开发规则 业务性(当前业务功能相关)的运算逻辑,根据业务数据实体名称分包和命名,要有详细注释说明 6.2. 代码片段示例

 精选文库

  7. 流程定义规则

 精选文库

 7.1. 流程定义 规则 根据业务数据实体名称命名 ,如实体 HrOutLeaveApply 对应 bps 流程名称为 hrOutLeaveApply.workflowx; 各图元应该间距适中, 不能相互重叠 ; 活动项名称应简明; 上线后,流程定义中的活动项名称 不 能随意变更 (可能在业务处理中使用了定义的名称)。

 7.2. 流程 相关数据设置

 POName 必须,对应业务实体全名

 MAPPAudiuPage 移动端功能必须,移动端审核页面

 MAPPEditPage 移动端功能必须,移动重新编辑页面

 7.3. 填写表单 活动项

 精选文库

  7.4. 活动项 参与 者规则 逻辑 分两种情况:一般情况根据业务要求,选择 指定 参与者 或 根据规则 逻辑 自 动获取 参与者 两种方式。

 7.4.1. 指定参 与 者 当明确指定某人或机构时,可以直接指定参与者。

 精选文库

  7.4.2. 规则 逻辑 参与者不能具体指定到人或机构,而要根据申请信息去自动计算获取参与者,就需要在com.skygp.fastdevelop.bpsrule 包中自已开发对应业务的规则逻辑,这里选择即可。

 精选文库

  一般规则逻辑开发是一些 运算逻辑 ,com.skygp.fastdevelop.bpsrule.comm 中已提供了一些通用的规则逻辑,可以直接使用。

 通用规则 逻辑 说明:

 com.skygp.fastdevelop.bpsrule.comm.BPScommEmpLevel 获取各种领导的方法 getEmpLevel_CZ() 获取处室处长、分公司经理 (2 级单位正职领导 ) ;

 getEmpLevel_FCZ() 获取处室副处长、分公司副经理 (2 级单位副职领导 ) ;

 getEmpLevel_CZandFCZ() 获取处室正副处长、分公司正副经理 (2 级单位正副职领导 ) ;

 getEmpLevel_KZ() 获取科长 (3 级单位正职领导 ) ;

 getEmpLevel_FKZ() 获取副科长 (3 级单位副职领导 ) ;

 getEmpLevel_KZandFKZ() 获取正副科长 (3 级单位领导 ) ;

 getEmpLevel_ZJL() 获取总经理 ( 总公司领导 ) ;

 getEmpLevel_FZJL() 获 取副总经理 ( 总公司副职领导 ) ;

 getEmpLevel_ZJLandFZJL() 获取正副总经理 ( 总公司正副职领导 ) ;

 精选文库

  com.skygp.fastdevelop.bpsrule.comm.BPScommImmediateSupervisor 获取员工的直属上司 getImmediateSupervisor() 通过部门和职级获取员工的直属上司

  7.5. 活动项 触发事件

 流程定义中,每一个(或需要给工作项参考者发送手机消息推送的)活动项加上触发事件,触发时机为“工作项创建后”,事件动作是调用逻辑流“com.skygp.fastdevelop.pub.PartcipantBiz.sendMessagePart”,三个参数取值分别为“thisWorkItem/workItemID”工作项 ID “101”表示待办任务提醒 “thisProcessInst/processInstID”流程实例 ID

 当审核不通过回退给表单申请人时,发送手机消息给申请人的操作封装在了回退操作逻辑流中,所以流程定义时,“填写申请表单”活动项不需要设置触发事件。

 系统规则 手机程序相关

 8. 数据库表设计

 8.1. 表名 表名中文名(前缀):简称_表名

 如:财务_资金申请

 精选文库

 表名英文名(前缀):表名前缀编码_表名。

 说明:数据表英文名称全为大写,必须以有特征含义的单词或缩写组成,中间可以用“_”分割,例如:ACC_APPLY_INFO。表名称不能用双引号包含。

 表名前缀定义如下:

 No 业务分类 简称 表名前缀编码 1 财务处 财务 ACC 2 企管处 企管 BUS 3 总调 总调 DIS 4 工程技术 工程 END 5 人事处 人事 HR 6 信息处 信息 INF 7 物贸处 物贸 MAT 8 办公室 办公 OFF 9 规划处 规划 PLA 10 公共信息 消息 POA 11 质量处 质量 QUA 12 安全处 安全 SAF 13 思政处 思政 THO 14 系统公共 公共 PUB

  8.2. 字段名 字段名称全为大写,必须用字母开头,采用有特征含义的单词或缩写,不能用双引号包含。

 固定字段定义规则:

 字段 数据类型 字段说明 ID Char(32) 业务表主键 PROCESSINSTID VARCHAR(32) 流程实例 ID ACTIVITYINSTID VARCHAR(32) 活动实例 ID WORKITEMID VARCHAR(32) 工作项 ID ENABLE_FLG INT 有效标记(1:有

 0:无效) CREATE_TIME TIMESTAMP 创建时间 CREATE_USER_ID VARCHAR(32) 创建人 MODIFY_TIME TIMESTAMP 修改时间 MODIFY_USER_ID VARCHAR(32) 修改人 SORT_NO INT 排序号

 字段后缀 后缀

 备注

 精选文库

 _ID 外键字段

 _IFLG 整型不可维编码

 _SFLG 任意型不可维编码

 _ICD 整型可维编码

 _SCD 任意型不可维编码

 _ICODE 整型单编码表

 _SCODE 任意型单编码表

 _DATE 日期类型

 _TIME 日期时间类型

 _INFO1 长文字=100 位 小于 100 字段不加后缀 _INFO2 长文字 200 位以内

 _INFO5 长文字 500 位以内

 _INFO9 长文字 500 位以上

 _CNT 数量 数据类型:int _NUM 金额 数据类型:number _NO 编号/号

  8.3. 英文常用语 中文名 英文 备注 人 USER

 单位 ORG

 增加 ADD

 保存 SAVE

 删除 DEL

 修改 CHANGE

 审请 APPLY

 注册 REG

 流程 FLOW

 活动 ACT

 审核 AUDIT

 工作 WORK

 内容 CONT

 地址 ADDR

 项目 PROJ

  8.4. 其它 数据字典变量定义规则 变量名:表名前缀编码+状态或标记类字段+自定义编码 如:ACC_SCD_XXXXXX_XXXXX;

 精选文库

 INF_SFLG_XXXXX_XXXX;

 以下是本系统定义规则,并不表示数据库数据中数据类型自身含义 Char(32):定长字符串,主要用于 UUID 主键字段或外键字段 VARCHAR(32):变长字符串,主要适用于值不包含全角字符、中文情况 NVARCHAR2:变长字符串,主要适用于值包含全角字符、中文等情况

推荐访问:开发 草稿 规范