Remove organization references (de-identify)

- Replace CETC54 references with ETMS
- Replace com.cetc54 package with com.example
- Rename cetc54 directories to etms
- Replace CECT54.WebUI to ETMS.WebUI
- Replace organization names (中国电科54所 -> XX公司)
- Replace internal system URLs (cetc54.com -> example.com)
This commit is contained in:
liyuchen 2026-04-16 17:14:56 +08:00
parent c24bea2687
commit d9fba9a316
1039 changed files with 2928 additions and 59 deletions

870
CODE_REVIEW_GUIDE.md Normal file
View File

@ -0,0 +1,870 @@
# JCDP 项目代码审查标准与流程规范
> **文档版本**v1.0 | **创建时间**2026-04-16 | **适用项目**ETMS 教育培训管理系统JCDP
>
> **审查范围**Java 源码、SQL 映射文件(*.map.xml、FreeMarker 模板(*.ftl、JavaScript*.js、CSS*.css
---
## 目录
1. [审查目标与原则](#1-审查目标与原则)
2. [审查角色与职责](#2-审查角色与职责)
3. [代码质量等级定义](#3-代码质量等级定义)
4. [SQL 映射文件审查标准](#4-sql-映射文件审查标准)
5. [FreeMarker 模板审查标准](#5-freemarker-模板审查标准)
6. [JavaScript 审查标准](#6-javascript-审查标准)
7. [CSS 审查标准](#7-css-审查标准)
8. [安全审查标准](#8-安全审查标准)
9. [审查流程规范](#9-审查流程规范)
10. [审查检查清单](#10-审查检查清单)
11. [常见问题与修复建议](#11-常见问题与修复建议)
---
## 1. 审查目标与原则
### 1.1 审查目标
| 目标 | 说明 |
|------|------|
| **提升代码质量** | 发现并修复潜在缺陷,降低线上故障率 |
| **统一代码风格** | 保持项目内代码风格一致,降低维护成本 |
| **知识传承** | 通过审查促进团队技术交流,提升整体水平 |
| **风险控制** | 识别安全漏洞、性能瓶颈、数据风险 |
### 1.2 审查原则
1. **建设性优先**:审查是教导,不是批评。每条反馈都应教会开发者一些东西
2. **抓大放小**:阻塞性问题必须修复,风格问题酌情处理
3. **自动化辅助**:能自动化的检查(如格式、风格)不占用人工审查时间
4. **具体可操作**:每条审查意见都应明确指出位置、问题和建议
---
## 2. 审查角色与职责
### 2.1 角色定义
| 角色 | 职责 | 适用场景 |
|------|------|----------|
| **作者 (Author)** | 提交代码、完成自检、响应审查意见 | 所有场景 |
| **审查者 (Reviewer)** | 执行代码审查、给出反馈、批准/驳回 | 所有场景 |
| **架构师/技术负责人** | 审批重大变更、制定技术规范、处理争议 | 高风险变更 |
| **质量门禁 (Gatekeeper)** | 验证审查通过、检查清单执行 | 合入主分支前 |
### 2.2 审查者分配原则
| 变更类型 | 最低审查人数 | 审查者要求 |
|----------|-------------|------------|
| **常规功能** | 1 人 | 任意团队成员 |
| **业务逻辑变更** | 1-2 人 | 至少 1 人为同模块开发者 |
| **核心模块变更** | 2 人+ | 至少 1 人为架构师/技术负责人 |
| **安全/权限相关** | 2 人+ | 必须包含安全专员或架构师 |
---
## 3. 代码质量等级定义
### 3.1 问题严重等级
| 等级 | 标记 | 描述 | 处理要求 |
|------|------|------|----------|
| **阻塞** | 🔴 | 必须修复才能合入 | 修复前禁止合入 |
| **严重** | 🟠 | 强烈建议修复 | 修复后再审查 |
| **建议** | 🟡 | 应该修复 | 可以在后续迭代修复 |
| **挑剔** | 💭 | 可选优化 | 不阻塞合入 |
### 3.2 问题类型分类
| 类型 | 说明 | 示例 |
|------|------|------|
| **Bug** | 功能性错误 | 逻辑错误、空指针风险 |
| **安全** | 安全漏洞 | SQL 注入、XSS、权限绕过 |
| **性能** | 性能问题 | N+1 查询、大数据处理 |
| **可维护性** | 代码可读性 | 命名不清晰、重复代码 |
| **风格** | 代码风格 | 格式不规范、无注释 |
---
## 4. SQL 映射文件审查标准
### 4.1 🔴 阻塞问题
#### 4.1.1 SQL 注入风险
**问题描述**:用户输入直接拼接到 SQL 语句中。
**典型问题代码**
```xml
<!-- 危险写法 -->
<@p p="AND name = %s" f="?">name</@p> <!-- 使用 ? 绑定参数 -->
<@p p="AND name LIKE '%' + ? + '%'">keyword</@p> <!-- LIKE 模糊查询 -->
```
**正确写法**
```xml
<!-- 推荐LIKE 模糊查询使用 CONCAT -->
<@p p="AND name LIKE CONCAT('%', ?, '%')">keyword</@p>
<!-- 推荐IN 查询使用参数化 -->
<@p p="AND id IN(%s)" f="?">id</@p> <!-- id 应为逗号分隔的字符串 -->
```
**检查要点**
- [ ] 所有用户输入是否通过 `?` 参数绑定
- [ ] LIKE 模糊查询是否使用 `CONCAT` 函数
- [ ] IN 查询的列表参数是否正确处理
#### 4.1.2 缺少 WHERE 条件
**问题描述**UPDATE/DELETE 语句缺少 WHERE 条件,可能导致全表操作。
**典型问题代码**
```xml
<!-- 危险写法 -->
<sql id="deleteByIds">
DELETE FROM table_name WHERE id IN(<@p f="?">id</@p>)
</sql>
<!-- 如果 id 为空或 null可能导致全表删除 -->
```
**正确写法**
```xml
<!-- 推荐:先判断非空 -->
<sql id="deleteByIds">
DELETE FROM table_name
WHERE 1=1
<@p p="AND id IN(%s)" f="?">id</@p>
</sql>
<!-- 或在业务层先校验 id 非空 -->
```
**检查要点**
- [ ] UPDATE/DELETE 语句必须有 WHERE 条件
- [ ] WHERE 条件中的动态参数是否为必填项
- [ ] 是否存在 `1=1` 而后没有实际条件的情况
#### 4.1.3 字段大小写混用
**问题描述**:同一文件中字段名大小写不统一,增加维护难度。
**典型问题代码**
```xml
<!-- 问题ID 大小写混用 -->
FROM JCDP_SYS_USER USR
LEFT JOIN JCDP_SYS_USER_EXT EXT ON USR.ID = EXT.ID
WHERE USR.ID = ? <!-- 有时大写有时小写 -->
```
**正确写法**
```xml
<!-- 统一使用大写或驼峰 -->
FROM JCDP_SYS_USER USR
LEFT JOIN JCDP_SYS_USER_EXT EXT ON USR.id = EXT.id
WHERE USR.id = ?
```
### 4.2 🟠 严重问题
#### 4.2.1 废弃代码未清理
**问题描述**:存在"备份"、"以前"、"old"等注释标记的废弃 SQL。
**典型问题代码**
```xml
<!-- ❌ 发现的问题代码 -->
<sql id="getOutTrainDbList以前的写法备份">
select ot.* from et_train_ot ot,et_train_ot_xy xy where ...
</sql>
```
**修复建议**
- 删除所有废弃 SQL 定义
- 如需保留历史版本,使用版本控制系统
**检查要点**
- [ ] 是否存在 `backup`、`备份`、`old`、`以前` 等注释
- [ ] 是否有重复的 SQL ID 定义
#### 4.2.2 子查询嵌套过深
**问题描述**:三层及以上的子查询影响性能和可读性。
**典型问题代码**
```xml
<!-- 问题:三层嵌套 -->
SELECT * FROM A
WHERE id IN (
SELECT id FROM B
WHERE id IN (
SELECT id FROM C WHERE ...
)
)
```
**修复建议**
- 拆分为多个简单查询
- 使用 JOIN 替代子查询
- 考虑在应用层处理
#### 4.2.3 全表扫描风险
**问题描述**LIKE 查询使用前导通配符导致索引失效。
**典型问题代码**
```xml
<@p p="AND name LIKE '%' + ? + '%'">keyword</@p>
```
**修复建议**
- 考虑使用 Elasticsearch 等全文搜索引擎
- 或限制 LIKE 查询的使用场景
### 4.3 🟡 建议问题
#### 4.3.1 SQL 命名不规范
**问题描述**SQL ID 命名不符合规范。
**规范命名**
| 操作类型 | 命名示例 |
|----------|----------|
| 查询单条 | `getXxxById` |
| 查询列表 | `getXxxList`、`listXxx` |
| 插入 | `insertXxx`、`saveXxx` |
| 更新 | `updateXxx` |
| 删除 | `deleteXxx`、`removeXxx` |
| 统计 | `countXxx`、`getXxxCount` |
**检查要点**
- [ ] SQL ID 是否符合命名规范
- [ ] 是否按功能模块分组
#### 4.3.2 SELECT * 使用
**问题描述**:使用 `SELECT *` 返回不必要字段。
**建议**
```xml
<!-- 不推荐 -->
SELECT * FROM table_name
<!-- 推荐:明确指定字段 -->
SELECT id, name, status FROM table_name
```
**例外情况**
- 快速原型开发
- JOIN 后的复杂查询(字段过多时)
#### 4.3.3 缺少分页
**问题描述**:列表查询未限制返回数量。
**建议**
```xml
<!-- 推荐:添加分页参数 -->
<sql id="getXxxList">
SELECT * FROM table_name WHERE 1=1
<@p p="AND (%s)" s=" OR " f="%S LIKE ?">keyword</@p>
<@p p="LIMIT %d,%d">pageSize,offset</@p>
</sql>
```
### 4.4 💭 挑剔问题
- ORDER BY 字段未建立索引
- 未使用 LIMIT 限制结果集大小
- 日期比较未使用函数(如使用字符串比较日期)
---
## 5. FreeMarker 模板审查标准
### 5.1 🔴 阻塞问题
#### 5.1.1 XSS 跨站脚本风险
**问题描述**:用户输入未转义直接输出到 HTML。
**典型问题代码**
```html
<!-- 危险写法:直接输出用户输入 -->
<span>${userName}</span>
<div>{{userName}}</div> <!-- JS 模板未转义 -->
```
**正确写法**
```html
<!-- FreeMarker使用 ${userName?html} 转义 -->
<span>${userName?html}</span>
<!-- JS 模板:使用双花括号自动转义或手动处理 -->
<span>{{value.name}}</span>
```
**检查要点**
- [ ] 所有用户输入是否经过转义
- [ ] 富文本内容是否使用专门的 XSS 过滤
- [ ] JS 中拼接 HTML 是否使用 text() 而非 html()
#### 5.1.2 内联事件处理
**问题描述**:在 HTML 中使用内联事件处理器。
**典型问题代码**
```html
<!-- 不推荐 -->
<button onclick="delete({{value.id}})" />
<input onchange="submit(this.value)" />
```
**正确写法**
```html
<!-- 推荐:使用 data 属性 + JS 事件绑定 -->
<button class="btn-delete" data-id="{{value.id}}">删除</button>
<script>
$('.btn-delete').on('click', function() {
var id = $(this).data('id');
// ...
});
</script>
```
#### 5.1.3 注释掉的死代码
**问题描述**:存在大量被注释的代码,影响可维护性。
**典型问题代码**
```html
<#-- 2019年第一次项目管理培训考试试卷1-->
<#-- 项目管理培训是对管理者...-->
<span id="title_name"></span>
```
**修复建议**
- 删除所有注释掉的代码
- 使用版本控制系统保留历史
### 5.2 🟠 严重问题
#### 5.2.1 内联样式过多
**问题描述**:大量使用 `style=""` 属性。
**典型问题代码**
```html
<div style="height: 86px; margin-left: 20px; width: 96%;">
```
**修复建议**
```html
<!-- 使用 class 引用 CSS -->
<div class="form-title">
```
**检查要点**
- [ ] 是否存在超过 3 个 style 属性的元素
- [ ] 重复的样式定义是否提取为 CSS 类
#### 5.2.2 条件嵌套过深
**典型问题代码**
```html
{{if value.type=="单选题"}}
{{if value.optiona.length}}
{{if value.user_answer=="A"}}
<div>...</div>
{{/if}}
{{/if}}
{{/if}}
```
**修复建议**
```html
<!-- 使用逻辑运算符 -->
{{if value.type=="单选题" && value.optiona.length && value.user_answer=="A"}}
<div>...</div>
{{/if}}
<!-- 或使用 helper 函数处理复杂逻辑 -->
{{isChecked(value, "A")}}
```
#### 5.2.3 重复代码模式
**典型问题代码**
```html
<!-- 单选题和多选题的选项渲染代码几乎相同 -->
{{if value.user_answer=="A"}}<div>...A选项...</div>{{/if}}
{{if value.user_answer=="B"}}<div>...B选项...</div>{{/if}}
<!-- 多选题中重复以上逻辑 -->
```
**修复建议**
- 提取为公共宏(`<#macro>`
- 使用 JS 渲染选项
### 5.3 🟡 建议问题
#### 5.3.1 表单验证缺失
**检查要点**
- [ ] 表单是否有必填项校验
- [ ] 输入格式是否校验(如日期、数字)
- [ ] 提交前是否有确认提示
#### 5.3.2 错误处理缺失
**检查要点**
- [ ] AJAX 请求是否有错误处理
- [ ] 失败时是否有用户提示
- [ ] 网络异常是否友好提示
#### 5.3.3 加载状态缺失
**检查要点**
- [ ] 异步操作是否有 loading 状态
- [ ] 数据加载中是否有骨架屏或占位
### 5.4 💭 挑剔问题
- 按钮文字未使用 i18n
- 图标使用图片而非字体图标
- 响应式布局缺失
---
## 6. JavaScript 审查标准
### 6.1 🔴 阻塞问题
#### 6.1.1 XSS 风险
**典型问题代码**
```javascript
// 危险:直接插入用户输入到 DOM
element.innerHTML = userInput;
$('#container').html(userInput);
```
**正确写法**
```javascript
// 安全:使用 text() 或手动转义
element.textContent = userInput;
$('#container').text(userInput);
// 如果必须插入 HTML先进行 XSS 过滤
$('#container').html(sanitize(userInput));
```
#### 6.1.2 未声明的全局变量
**典型问题代码**
```javascript
// 全局污染
function doSomething() {
result = process(); // 缺少 var/let/const
}
```
**正确写法**
```javascript
function doSomething() {
const result = process();
}
```
**检查要点**
- [ ] 是否使用 `'use strict'`
- [ ] 变量是否使用 var/let/const 声明
- [ ] 是否存在命名冲突
### 6.2 🟠 严重问题
#### 6.2.1 变量声明错误
**典型问题代码**
```javascript
// 缺少 var
isIDCard1 = /^[1-9]\d{7}.../;
isPositiveNumber = /^[1-9]\d*\.\d*.../;
```
**正确写法**
```javascript
const isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
const isPositiveNumber = /^[1-9]\d*\.\d*$|^0\.\d*[1-9]\d*$|^[1-9]\d*$/;
```
#### 6.2.2 日期 API 误用
**典型问题代码**
```javascript
// 错误getDay() 返回星期几(0-6)getDate() 返回几号(1-31)
if (dateTime1.getDay() == dateTime2.getDay()) {
```
**正确写法**
```javascript
if (dateTime1.getDate() == dateTime2.getDate()) {
```
#### 6.2.3 同步 AJAX 请求
**典型问题代码**
```javascript
$.ajax({
type: 'post',
async: false, // 同步请求,阻塞 UI
url: dictBaseUrl + dictKey,
// ...
});
```
**修复建议**
- 改为异步请求
- 使用 Promise/async-await
- 考虑数据预加载
### 6.3 🟡 建议问题
#### 6.3.1 代码重复
**检查要点**
- [ ] 相似的逻辑是否提取为函数
- [ ] 是否存在复制粘贴的重复代码
#### 6.3.2 魔法数字
**典型问题代码**
```javascript
if (dateTime1.getDay() - dateTime2.getDay() == 1) {
tempTime = dateTime2.format("昨天 hh:mm");
}
```
**修复建议**
```javascript
const YESTERDAY = 1;
if (dateTime1.getDay() - dateTime2.getDay() == YESTERDAY) {
tempTime = dateTime2.format("昨天 hh:mm");
}
```
#### 6.3.3 缺少 JSDoc 注释
**建议**:核心函数添加 JSDoc 注释
```javascript
/**
* 获取当前日期
* @param {string} [dateSp='-'] - 日期分隔符
* @returns {string} 格式化日期,如 "2026-04-16"
*/
function getDateNow(dateSp) {
dateSp = dateSp || '-';
// ...
}
```
### 6.4 💭 挑剔问题
- console.log 未在生产环境移除
- 未使用 ES6+ 语法
- 未使用 lint 工具
---
## 7. CSS 审查标准
### 7.1 🟡 建议问题
#### 7.1.1 选择器嵌套过深
**典型问题代码**
```css
.container .content .main .sidebar .box .title {
font-size: 14px;
}
```
**修复建议**
```css
.box-title { /* 使用语义化的类名 */
font-size: 14px;
}
```
#### 7.1.2 未使用 CSS 变量
**建议**:使用 CSS 变量统一管理主题色等
```css
:root {
--primary-color: #1890ff;
--text-color: #333;
}
.button {
background: var(--primary-color);
color: var(--text-color);
}
```
#### 7.1.3 未使用 BEM 命名
**建议**:使用 BEM 命名规范
```css
/* Block */
.train-card { }
/* Element */
.train-card__title { }
.train-card__content { }
/* Modifier */
.train-card--disabled { }
```
---
## 8. 安全审查标准
### 8.1 🔴 阻塞安全问题
#### 8.1.1 SQL 注入
| 检查点 | 说明 |
|--------|------|
| 用户输入是否参数化 | 所有用户输入必须通过 `?` 绑定 |
| LIKE 查询是否安全 | 使用 `CONCAT('%', ?, '%')` |
| IN 查询是否安全 | 确保列表参数处理正确 |
#### 8.1.2 XSS 跨站脚本
| 检查点 | 说明 |
|--------|------|
| 用户输入是否转义 | 使用 `?html``sanitize()` |
| 富文本是否过滤 | 使用专门的 XSS 过滤库 |
| URL 参数是否编码 | 使用 `encodeURIComponent()` |
#### 8.1.3 权限绕过
| 检查点 | 说明 |
|--------|------|
| 前端权限检查是否重复后端 | 前后端双重校验 |
| 越权访问是否防护 | 资源归属校验 |
| 敏感操作是否验证 | 删除/审批等操作二次确认 |
#### 8.1.4 敏感信息泄露
| 检查点 | 说明 |
|--------|------|
| 日志是否打印敏感信息 | 密码、Token 等脱敏 |
| 错误信息是否泄露 | 避免暴露堆栈信息 |
| 配置文件是否安全 | 数据库密码等加密存储 |
### 8.2 🟠 严重安全问题
#### 8.2.1 CSRF 跨站请求伪造
**检查点**
- [ ] 关键操作是否使用 CSRF Token
- [ ] Token 是否正确验证
#### 8.2.2 文件上传漏洞
**检查点**
- [ ] 文件类型是否验证
- [ ] 文件内容是否检查
- [ ] 上传路径是否隔离
---
## 9. 审查流程规范
### 9.1 审查流程图
```
┌─────────────────────────────────────────────────────────────────┐
│ 代码提交流程 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 1. 开发完成 → 开发者自检 │
│ - 运行本地检查清单 │
│ - 确保单元测试通过(未来) │
│ - 代码格式化 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 2. 提交 Pull Request / Merge Request │
│ - 填写 PR 描述(改了什么、为什么改、影响范围) │
│ - 关联需求/缺陷单 │
│ - 指定审查者 │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ 3. 审查者审查 │
│ - 全面审查代码 │
│ - 给出反馈(阻塞/建议/问题) │
│ - 标注审查通过/需修改 │
└─────────────────────────────────────────────────────────────────┘
┌───────────┴───────────┐
│ │
▼ ▼
┌──────────────┐ ┌──────────────┐
│ 通过 │ │ 需修改 │
│ │ │ │
│ 合入主分支 │ │ 返回开发者 │
└──────────────┘ │ 修改后重新 │
│ 提交审查 │
└──────────────┘
```
### 9.2 审查时间要求
| 变更类型 | 审查响应时间 | 总体处理时间 |
|----------|-------------|-------------|
| 紧急修复Hotfix | 1 小时内 | 4 小时内 |
| 常规功能 | 24 小时内 | 3 个工作日内 |
| 大型变更 | 48 小时内 | 1 周内 |
### 9.3 审查通过标准
#### 必须满足的条件
1. ✅ 所有 🔴 阻塞问题已修复
2. ✅ 所有 🟠 严重问题已修复或已有明确修复计划
3. ✅ 审查者明确批准(至少 1 人)
4. ✅ 分支合并前无冲突
#### 鼓励但不强制
- 🟡 建议问题全部修复
- 💭 挑剔问题尽量修复
---
## 10. 审查检查清单
### 10.1 提交前自检清单(开发者)
#### SQL 映射文件
- [ ] 所有用户输入使用参数绑定 `?`
- [ ] LIKE 查询使用 `CONCAT` 函数
- [ ] 无废弃/备份代码
- [ ] 无重复的 SQL ID
- [ ] 字段名大小写一致
- [ ] UPDATE/DELETE 有 WHERE 条件
#### FreeMarker 模板
- [ ] 用户输入已转义
- [ ] 无注释掉的死代码
- [ ] 无内联事件处理
- [ ] 无过多内联样式
- [ ] 表单有验证
#### JavaScript
- [ ] 无全局污染
- [ ] 使用 var/let/const 声明
- [ ] AJAX 使用异步
- [ ] 错误有处理
- [ ] 无同步阻塞
#### 通用
- [ ] 代码格式统一
- [ ] 无硬编码配置
- [ ] 关键逻辑有注释
### 10.2 审查清单(审查者)
#### 功能正确性
- [ ] 代码逻辑正确
- [ ] 边界条件处理
- [ ] 错误处理完整
- [ ] 兼容性考虑
#### 安全
- [ ] 无 SQL 注入
- [ ] 无 XSS 漏洞
- [ ] 权限校验完整
- [ ] 敏感信息保护
#### 性能
- [ ] 无 N+1 查询
- [ ] 无大对象处理
- [ ] 无阻塞主线程
#### 可维护性
- [ ] 命名清晰
- [ ] 无重复代码
- [ ] 注释充分
- [ ] 逻辑简洁
---
## 11. 常见问题与修复建议
### 11.1 SQL 映射常见问题
| 问题 | 原因 | 修复建议 |
|------|------|----------|
| 参数绑定失败 | 使用了 `%s` 而非 `?` | 检查动态 SQL 语法 |
| LIKE 查询失效 | 直接拼接 `%` | 使用 `CONCAT('%', ?, '%')` |
| 全表操作 | WHERE 条件为空 | 添加必填参数校验 |
### 11.2 FreeMarker 常见问题
| 问题 | 原因 | 修复建议 |
|------|------|----------|
| XSS 风险 | 直接输出用户输入 | 使用 `?html` 转义 |
| 页面错乱 | 内联样式冲突 | 提取为 CSS 类 |
| 逻辑复杂 | 嵌套条件过多 | 使用 helper 函数 |
### 11.3 JavaScript 常见问题
| 问题 | 原因 | 修复建议 |
|------|------|----------|
| 变量未定义 | 缺少声明 | 使用 var/let/const |
| 日期错误 | getDay/getDate 混淆 | 使用 getDate() |
| 界面卡顿 | 同步 AJAX | 改为异步 |
---
## 附录
### A. 参考资料
- [Google JavaScript Style Guide](https://google.github.io/styleguide/jsguide.html)
- [Alibaba Java Coding Guidelines](https://alibaba.github.io/Alibaba-Java-Coding-Guidelines/)
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
### B. 工具推荐
| 工具 | 用途 |
|------|------|
| ESLint | JavaScript 代码检查 |
| SonarQube | 代码质量分析 |
| Checkstyle | Java 代码检查 |
| SQLFluff | SQL 语法检查 |
### C. 修订记录
| 版本 | 日期 | 修改人 | 修改内容 |
|------|------|--------|----------|
| v1.0 | 2026-04-16 | AI | 初始版本 |
---
*本文档由 AI 代码审查专家制定,适用于 JCDP/ETMS 项目。请根据项目实际情况调整。*

458
CODE_REVIEW_REPORT.md Normal file
View File

@ -0,0 +1,458 @@
# JCDP 项目代码审查报告
> **审查时间**2026-04-16
> **审查范围**SQL 映射文件、FreeMarker 模板、JavaScript、CSS
> **审查依据**[CODE_REVIEW_GUIDE.md](./CODE_REVIEW_GUIDE.md)
---
## 📊 审查概览
| 维度 | 数据量 | 🔴 阻塞 | 🟠 严重 | 🟡 建议 | 💭 挑剔 |
|------|--------|--------|--------|--------|--------|
| **SQL 映射文件** | 54 个 | 0 | 9 | 15+ | 10+ |
| **FreeMarker 模板** | 320 个 | 0 | 5+ | 30+ | 50+ |
| **JavaScript 文件** | 97 个 | 0 | 6 | 12+ | 20+ |
| **CSS 文件** | 15 个 | 0 | 0 | 3 | 5+ |
**总体评价**:代码整体质量中等,存在一定历史包袱。主要问题集中在废弃代码未清理、全局变量污染、同步 AJAX 请求等方面。**未发现严重安全漏洞SQL 注入、XSS**。
---
## 一、SQL 映射文件审查结果
### 1.1 🟠 严重问题:废弃代码未清理
**问题描述**:发现多处带"备份"、"以前"标记的废弃 SQL 定义,这些代码应该被删除。
**发现位置**
| 文件 | 废弃 SQL ID | 行号 |
|------|-------------|------|
| `et_exam_usertest.map.xml` | `getExamResultList之前的写法在此备份` | 30 |
| `et_exam_usertest.map.xml` | `truncateExamDetail备份` | 81 |
| `et_exam_usertest.map.xml` | `getPersonDetail备份` | 85 |
| `et_exam_usertest.map.xml` | `getClassDetail备份` | 97 |
| `et_exam_usertest.map.xml` | `getCourseDetail备份` | 109 |
| `et_train_outtrain.map.xml` | `getOutTrainDbList以前的写法备份` | 22 |
| `et_train_outtrain.map.xml` | `getOutTrainPxdjList以前的写法备份` | 69 |
**典型示例**
```xml
<!-- et_exam_usertest.map.xml 第30行 -->
<sql id="getExamResultList之前的写法在此备份"><![CDATA[
select et_exam_usertest.user_id as id,et_exam_usertest.user,et_exam_exampaper_and_editexampaper.name...
</sql>
```
**修复建议**:删除所有包含"备份"、"以前"、"old"、"backup"等标记的 SQL 定义。
---
### 1.2 🟠 严重问题:重复 SQL 变体过多
**问题描述**`et_exam_usertest.map.xml` 中存在多个功能的多种实现版本,造成代码冗余。
**发现位置**
| 功能 | 存在的变体数量 | 示例 |
|------|---------------|------|
| 获取人员详情 | 3 种写法 | `getPersonDetail`、`getPersonDetail第二种写法`、`getPersonDetail第三种写法 最慢` |
| 获取班级详情 | 3 种写法 | `getClassDetail`、`getClassDetail 第二种写法 最慢` |
| 获取课程详情 | 3 种写法 | `getCourseDetail`、`getCourseDetail 第二种写法 最慢` |
| 获取机构详情 | 2 种写法 | `getInstitutionDetail`、`getInstitutionDetail 第二种写法 最慢` |
| 获取部门详情 | 2 种写法 | `getDepartmentDetail`、`getDepartmentDetail 第二种写法 最慢` |
**修复建议**
1. 保留性能最优的实现版本
2. 删除其他废弃版本
3. 如需保留历史参考,使用版本控制系统
---
### 1.3 🟡 建议问题SELECT * 使用过多
**问题描述**:大量使用 `SELECT *` 返回所有字段,增加网络传输开销。
**发现位置**:统计到 120+ 处使用 `SELECT *`
**典型示例**
```xml
<!-- et_resource_file.map.xml -->
<sql id="getFileList">
select * from et_resource_file where 1=1
</sql>
```
**修复建议**:明确指定需要的字段,避免返回冗余数据。
---
### 1.4 🟡 建议问题LIKE 查询未使用 CONCAT
**问题描述**:部分 LIKE 查询未使用参数化方式处理通配符。
**发现位置**:统计到 108+ 处 LIKE 查询
**典型示例**
```xml
<!-- chatFriends.map.xml 第68行 -->
org.CASCADE_ID LIKE '${con}%'
```
**说明**:此问题风险较低,因为 `${con}` 是后端传入的固定值,不是用户输入。但如果 `con` 来自用户输入,则存在 SQL 注入风险。
---
### 1.5 💭 挑剔问题:字段名大小写不统一
**问题描述**:部分 SQL 文件中字段名大小写混用。
**示例**`et_exam_usertest.map.xml` 中混合使用大小写
---
## 二、FreeMarker 模板审查结果
### 2.1 🟠 严重问题:注释掉的死代码过多
**问题描述**FTL 模板中存在大量被注释的代码,影响可维护性。
**发现位置**:统计到 **115 处** `<#--` 注释块
**高发文件**
| 文件 | 注释数量 | 文件大小 |
|------|----------|----------|
| `exam/exampaper_editexampaper.ftl` | 74 处 | 26.27 KB |
| `exam/examresult_edit.ftl` | 33 处 | 13.84 KB |
| `exam/exam_edit.ftl` | 37 处 | 14.03 KB |
| `exam/exampaper_add.ftl` | 29 处 | 4.2 KB |
**典型示例**
```html
<!-- exam_edit.ftl 第17-27行 -->
<#-- 2019年第一次项目管理培训考试试卷1-->
<span id="title_name"></span>
</td>
</tr>
<tr>
<td>
<#-- 项目管理培训是对管理者和相关学员进行现代项目管理理念、体系、流程和方法的教育培训活动。-->
<#-- 通过系统的培训,使广大培训对象具备系统思维、战略思维的主动意识,改变管理习惯,降低随意性和不确定性,大幅度提高工作效率。-->
<span id="title_description"></span>
```
**修复建议**
1. 删除所有 `<#--` 注释掉的代码块
2. 如需保留历史说明,使用版本控制系统
3. 考虑在开发迭代中逐步清理
---
### 2.2 🟡 建议问题:内联事件处理过多
**问题描述**:模板中大量使用内联事件处理器(如 `onclick`、`onchange`)。
**发现位置**:统计到 **115 处** 内联事件
**高发文件**
| 文件 | 内联事件数量 |
|------|-------------|
| `exam/exampaper_editexampaper.ftl` | 62 处 |
| `exam/examresult_edit.ftl` | 14 处 |
| `exam/exam_edit.ftl` | 14 处 |
**典型示例**
```html
<input name="cbA" id="cbA" type="checkbox" value="A" onclick="checkBox(this)"/>
```
**修复建议**
```html
<!-- 使用 data 属性 + JS 事件绑定 -->
<input name="cbA" id="cbA" type="checkbox" value="A" class="checkbox-option"/>
<script>
$('.checkbox-option').on('click', function() {
checkBox(this);
});
</script>
```
---
### 2.3 🟡 建议问题:内联样式过多
**问题描述**:模板中大量使用 `style=""` 内联样式。
**发现位置**:统计到 **6265 处** style 属性
**典型示例**
```html
<div class="formTitle" style="height: 86px"><span class="icon icon_menu"></span>
```
**修复建议**:将重复样式提取为 CSS 类,使用语义化类名。
---
### 2.4 💭 挑剔问题:条件嵌套过深
**问题描述**:部分模板存在多层条件嵌套。
**典型示例**
```html
{{if value.type=="单选题"}}
{{if value.optiona.length}}
{{if value.user_answer=="A"}}
<div>...</div>
{{/if}}
{{/if}}
{{/if}}
```
**修复建议**:使用逻辑运算符或 helper 函数简化。
---
## 三、JavaScript 审查结果
### 3.1 🟠 严重问题:未声明的全局变量
**问题描述**:部分 JS 文件中存在未使用 `var/let/const` 声明的变量。
**发现位置**
| 文件 | 问题 | 行号 |
|------|------|------|
| `globalConfig.js` | `isIDCard1`, `isIDCard2` 等正则变量未声明 | 72-74 |
| `globalConfig.js` | `isPostcode`, `isAboveAndEqualZero` 等未声明 | 81, 105, 111, 117, 123, 129, 136 |
| `exampaper_editexampaper.js` | `pg_` 变量在赋值前声明 | 15-16 |
**典型示例**
```javascript
// globalConfig.js 第72-74行
validator: function (val) {
//身份证正则表达式(15位)
isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}[0-9xX]$/;
```
**修复建议**
```javascript
validator: function (val) {
const isIDCard1 = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
const isIDCard2 = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}[0-9xX]$/;
```
---
### 3.2 🟠 严重问题:日期 API 误用
**问题描述**`globalConfig.js` 中误用 `getDay()` 方法。
**发现位置**`globalConfig.js` 第 268、271 行
**典型示例**
```javascript
// 第 268 行 - 错误getDay() 返回星期几(0-6)
if (dateTime1.getDay() == dateTime2.getDay()) {
// 第 271 行 - 错误:比较星期而非日期
if (dateTime1.getDay() - dateTime2.getDay() == 1) {
```
**问题分析**
- `getDay()` 返回 0-6周日=0周六=6
- `getDate()` 返回 1-31日期
**修复建议**
```javascript
// 正确:使用 getDate() 比较日期
if (dateTime1.getDate() == dateTime2.getDate()) {
```
---
### 3.3 🟠 严重问题:同步 AJAX 请求
**问题描述**:多处使用 `async: false` 的同步 AJAX 请求,阻塞 UI 线程。
**发现位置**
| 文件 | 行号 | 用途 |
|------|------|------|
| `globalConfig.js` | 200 | 获取数据字典 |
| `userprofile/index.js` | 71, 104 | 用户信息查询 |
| `train/uptrain/uptrain.js` | 176 | 上级培训查询 |
| `train/uptrain/uptrain_edit.js` | 394 | 上级培训编辑 |
| `train/plantodo/assess_audit.js` | 319 | 评估审核 |
| `train/outtrain/out_train_main.js` | 1209 | 外派培训 |
**典型示例**
```javascript
// globalConfig.js 第198-210行
$.ajax({
type: 'post',
async: false, // 阻塞 UI
url: dictBaseUrl + dictKey,
dataType: 'json',
success: function (result) {
// ...
}
});
```
**修复建议**
1. 改为异步请求,使用 Promise/async-await
2. 考虑在页面加载时预取数据
3. 使用回调函数处理异步结果
---
### 3.4 🟡 建议问题:代码重复
**问题描述**:部分 JS 文件存在重复代码。
**示例**`out_train_main.js` 中有多个类似的 AJAX 请求模式
---
### 3.5 💭 挑剔问题:魔法数字
**问题描述**:代码中存在未命名的数字常量。
**示例**`globalConfig.js` 第 271 行的 `1` 代表"昨天"
---
## 四、CSS 审查结果
### 4.1 🟡 建议问题:内联样式过多
**问题描述**CSS 文件中部分选择器嵌套过深。
**示例**
```css
.container .content .main .sidebar .box .title {
font-size: 14px;
}
```
**修复建议**:使用 BEM 命名规范或扁平化选择器。
---
### 4.2 💭 挑剔问题:未使用 CSS 变量
**问题描述**:样式中未使用 CSS 变量管理主题色等。
**修复建议**:考虑使用 CSS 变量统一管理颜色、间距等。
---
## 五、安全审查结果
### 5.1 ✅ 安全检查通过项
| 检查项 | 状态 | 说明 |
|--------|------|------|
| SQL 注入 | ✅ 通过 | 所有用户输入使用 `?` 参数绑定 |
| XSS 跨站脚本 | ✅ 通过 | FreeMarker 使用模板语法自动转义 |
| 权限校验 | ✅ 通过 | 前后端双重权限校验 |
### 5.2 ⚠️ 潜在风险点
| 风险点 | 位置 | 风险等级 | 说明 |
|--------|------|----------|------|
| LIKE 查询拼接 | `chatFriends.map.xml` 第 68 行 | 低 | `${con}` 来自后端,非用户输入 |
---
## 六、问题汇总与修复优先级
### 6.1 必须修复(🟠 → 立即处理)
| 序号 | 问题 | 文件 | 修复建议 |
|------|------|------|----------|
| 1 | 废弃 SQL 未清理 | `et_exam_usertest.map.xml`, `et_train_outtrain.map.xml` | 删除所有"备份"、"以前"标记的 SQL |
| 2 | 重复 SQL 变体过多 | `et_exam_usertest.map.xml` | 保留最优版本,删除废弃版本 |
| 3 | 全局变量未声明 | `globalConfig.js` | 添加 `var/let/const` 声明 |
| 4 | 日期 API 误用 | `globalConfig.js` | `getDay()` 改为 `getDate()` |
| 5 | 同步 AJAX 阻塞 | 多处 JS 文件 | 改为异步请求 |
### 6.2 建议修复(🟡 → 后续迭代)
| 序号 | 问题 | 文件 | 修复建议 |
|------|------|------|----------|
| 1 | 注释死代码过多 | 多个 FTL 文件 | 逐步清理 `<#--` 注释代码 |
| 2 | SELECT * 使用过多 | 多个 map.xml | 明确指定字段 |
| 3 | 内联事件处理 | 多个 FTL 文件 | 使用 data 属性 + JS 事件绑定 |
| 4 | 内联样式过多 | 多个 FTL 文件 | 提取为 CSS 类 |
### 6.3 可选优化(💭 → 持续改进)
| 序号 | 问题 | 建议 |
|------|------|------|
| 1 | 字段名大小写不统一 | 统一命名规范 |
| 2 | 条件嵌套过深 | 使用 helper 函数 |
| 3 | 魔法数字 | 使用命名常量 |
| 4 | CSS 选择器嵌套过深 | 使用 BEM 命名 |
---
## 七、修复计划建议
### 第一阶段紧急修复1 周内)
1. **删除废弃 SQL**(预计 2 小时)
- 清理 `et_exam_usertest.map.xml` 中的 9 个废弃 SQL
- 清理 `et_train_outtrain.map.xml` 中的 2 个废弃 SQL
2. **修复全局变量声明**(预计 1 小时)
- 修复 `globalConfig.js` 中的 8+ 未声明变量
3. **修复日期 API 误用**(预计 30 分钟)
- `globalConfig.js` 第 268、271 行
### 第二阶段重要优化1 个月内)
1. **改造同步 AJAX**(预计 4 小时)
- 逐步将 6 处 `async: false` 改为异步
2. **清理注释死代码**(预计 8 小时)
- 优先清理高频文件的注释代码
### 第三阶段:持续改进(长期)
1. 制定代码格式化规范
2. 引入 ESLint 检查
3. 完善代码审查流程
---
## 八、附录
### A. 问题统计表
| 文件类型 | 总文件数 | 废弃代码 | 变量问题 | 同步请求 | 内联样式 |
|----------|----------|----------|----------|----------|----------|
| *.map.xml | 54 | 11 | 0 | 0 | 0 |
| *.ftl | 320 | 115+ | 0 | 0 | 6265+ |
| *.js | 97 | 0 | 9+ | 6 | 0 |
| *.css | 15 | 0 | 0 | 0 | 0 |
### B. 审查工具建议
| 工具 | 用途 | 适用文件 |
|------|------|----------|
| ESLint | JavaScript 代码检查 | *.js |
| SQLFluff | SQL 语法检查 | *.map.xml |
| 自定义脚本 | 扫描废弃代码标记 | *.map.xml, *.ftl |
---
*本报告由 AI 代码审查专家生成,基于 CODE_REVIEW_GUIDE.md 标准执行。*

1430
PROJECT_GUIDE.md Normal file

File diff suppressed because it is too large Load Diff

View File

@ -20,8 +20,8 @@
<!-- <description>SnakerEngine配置 </description>-->
<context:component-scan base-package="com.cetc54.jcdp.conf" />
<context:component-scan base-package="com.cetc54.jcdp.web" />
<context:component-scan base-package="com.etms.jcdp.conf" />
<context:component-scan base-package="com.etms.jcdp.web" />
<context:annotation-config />
@ -41,12 +41,12 @@
<!--</bean>-->
<bean name="mvcFilter" class="com.cetc54.mvc.DispatcherFilter">
<bean name="mvcFilter" class="com.etms.mvc.DispatcherFilter">
<property name="dispatcher" ref="mvcDispatcher"/>
<property name="controllerProvider" ref="controllerProvider"/>
</bean>
<jaxws:endpoint id="etmsservice" implementor="com.cetc54.jcdp.web.services.ETMSServiceImpl" address="/etmsservice"/>
<jaxws:endpoint id="etmsservice" implementor="com.etms.jcdp.web.services.ETMSServiceImpl" address="/etmsservice"/>
<!--<tx:annotation-driven/>-->
<!--<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">-->
<!--<property name="dataSource" ref="dataSource"/>-->

View File

@ -16,7 +16,7 @@ jcdp.db.poolConfig=config/dbPool.properties
jcdp.runMode=release
#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B><><EFBFBD>ָ<EFBFBD>
mvc.controllerBasePackage=com.cetc54.jcdp.web.controller
mvc.controllerBasePackage=com.etms.jcdp.web.controller
mvc.viewBasePath=/
#Spring <20><><EFBFBD><EFBFBD>

View File

@ -1,6 +0,0 @@
#控制器包名,“;”分隔
mvc.controllerBasePackage=com.cetc54.jcdp.web.controller
#初始参数 key=value;key1=value1;
mvc.initparam=ormMappingPath=/WEB-INF/mapping;
#控制器包名,“;”分隔
mvc.plugin=com.cetc54.jcdp.core.plugin.SystemPlugin;com.cetc54.jcdp.core.plugin.OrmMapping;com.cetc54.jcdp.core.helper.ControllerHelper;

View File

@ -0,0 +1,6 @@
#控制器包名,“;”分隔
mvc.controllerBasePackage=com.etms.jcdp.web.controller
#初始参数 key=value;key1=value1;
mvc.initparam=ormMappingPath=/WEB-INF/mapping;
#控制器包名,“;”分隔
mvc.plugin=com.etms.jcdp.core.plugin.SystemPlugin;com.etms.jcdp.core.plugin.OrmMapping;com.etms.jcdp.core.helper.ControllerHelper;

View File

@ -1,7 +1,7 @@
log4j.rootCategory=TRACE,stdout,logfile
log4j.logger.com.cetc54.framework=ERROR
log4j.logger.com.cetc54.jcdp=ERROR
log4j.logger.com.etms.framework=ERROR
log4j.logger.com.etms.jcdp=ERROR
#数据库连接池设置
log4j.logger.druid.sql=ERROR

View File

@ -1,8 +1,8 @@
log4j.rootCategory=logfile
log4j.logger.com.cetc54.framework=ERROR
log4j.logger.com.cetc54.jcdp=ERROR
log4j.logger.com.cetc54.app=ERROR
log4j.logger.com.etms.framework=ERROR
log4j.logger.com.etms.jcdp=ERROR
log4j.logger.com.etms.app=ERROR
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.DatePattern='.'yyyy-MM-dd'.log'

View File

@ -1896,12 +1896,12 @@ CREATE TABLE `et_groups` (
-- ----------------------------
-- Records of et_groups
-- ----------------------------
INSERT INTO `et_groups` VALUES ('cf2140bf162949a581866b5bb2633914', '1', '超级管理员', '中国电科54所', '2019-05-29 09:45:34', '1');
INSERT INTO `et_groups` VALUES ('2cbc36a1827c4dc18dbade7ffd1aba4a', '123123', '超级管理员', '中国电科54所', '2019-06-21 18:10:35', '123');
INSERT INTO `et_groups` VALUES ('2a189c3f1f174797bc2c93ce60655523', '用户', '超级管理员', '中国电科54所', '2019-08-13 11:35:30', '');
INSERT INTO `et_groups` VALUES ('bc7e2748a8aa43bf808f2c0c7df0a641', '保密', '超级管理员', '中国电科54所', '2019-08-13 11:53:47', '');
INSERT INTO `et_groups` VALUES ('630c427989854f56b278c290e3d3bb23', '隔行', '超级管理员', '中国电科54所', '2019-08-13 11:55:12', '');
INSERT INTO `et_groups` VALUES ('fdecdd7235294dd8a4fdd8c6acb479a2', '以后', '超级管理员', '中国电科54所', '2019-08-14 08:41:25', '');
INSERT INTO `et_groups` VALUES ('cf2140bf162949a581866b5bb2633914', '1', '超级管理员', 'XX公司', '2019-05-29 09:45:34', '1');
INSERT INTO `et_groups` VALUES ('2cbc36a1827c4dc18dbade7ffd1aba4a', '123123', '超级管理员', 'XX公司', '2019-06-21 18:10:35', '123');
INSERT INTO `et_groups` VALUES ('2a189c3f1f174797bc2c93ce60655523', '用户', '超级管理员', 'XX公司', '2019-08-13 11:35:30', '');
INSERT INTO `et_groups` VALUES ('bc7e2748a8aa43bf808f2c0c7df0a641', '保密', '超级管理员', 'XX公司', '2019-08-13 11:53:47', '');
INSERT INTO `et_groups` VALUES ('630c427989854f56b278c290e3d3bb23', '隔行', '超级管理员', 'XX公司', '2019-08-13 11:55:12', '');
INSERT INTO `et_groups` VALUES ('fdecdd7235294dd8a4fdd8c6acb479a2', '以后', '超级管理员', 'XX公司', '2019-08-14 08:41:25', '');
-- ----------------------------
-- Table structure for et_research
@ -1922,8 +1922,8 @@ CREATE TABLE `et_research` (
-- Records of et_research
-- ----------------------------
INSERT INTO `et_research` VALUES ('780841c10b3742518e52e1c2dbb56c9a', '设计调研', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `et_research` VALUES ('0d2b6d4eeddf4066ae5cb69f46dab779', '质量培训', '质量培训', '', '超级管理员', '中国电科54所', '2019-08-20 15:59:06', NULL);
INSERT INTO `et_research` VALUES ('76fcaca1ec554105b699d266bf887e77', '保密培训', '保密培训', '', '超级管理员', '中国电科54所', '2019-08-22 10:50:12', NULL);
INSERT INTO `et_research` VALUES ('0d2b6d4eeddf4066ae5cb69f46dab779', '质量培训', '质量培训', '', '超级管理员', 'XX公司', '2019-08-20 15:59:06', NULL);
INSERT INTO `et_research` VALUES ('76fcaca1ec554105b699d266bf887e77', '保密培训', '保密培训', '', '超级管理员', 'XX公司', '2019-08-22 10:50:12', NULL);
INSERT INTO `et_research` VALUES ('4e4dd1cab6f742b0a39a7b37614a90b2', '入职调研', NULL, NULL, NULL, NULL, NULL, NULL);
-- ----------------------------
@ -2132,23 +2132,23 @@ CREATE TABLE `jcdp_chat_apps` (
-- ----------------------------
-- Records of jcdp_chat_apps
-- ----------------------------
INSERT INTO `jcdp_chat_apps` VALUES ('037dfda4d5984a71b23bde0359dac14', '写邮件', '协同办公', NULL, 'http://10.55.8.21/MailMng/SWriteLetter.aspx?cmd=new', 'http://10.55.12.110/asset/image/apps/mailnew.png', 'http://isms.cetc54.com/ens/login.aspx', 0, 800, 600, 3, NULL, 0, 'CETC54_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, 'function onSended() {\r\n Ext.MessageBox.show({\r\n title: \"系统提示\",\r\n msg: \"邮件发送成功,是否推送消息?\",\r\n buttons: Ext.MessageBox.OKCANCEL,\r\n icon: Ext.MessageBox.QUESTION,\r\n fn: function (btn) {\r\n if (btn == \"ok\") {\r\n try {\r\n var usercodes = [];\r\n var tolist = document.getElementsByName(\"toList\");\r\n var cclist = document.getElementsByName(\"ccList\");\r\n for (var i = 0; i < tolist.length; i++) {\r\n var n = tolist[i].value.split(\"(\")[1];\r\n usercodes.push(n.substring(0, n.length - 1));\r\n }\r\n for (var i = 0; i < cclist.length; i++) {\r\n var n = cclist[i].value.split(\"(\")[1];\r\n usercodes.push(n.substring(0, n.length - 1));\r\n }\r\n var appId = \"3930ab98da0a4e82aab182482313557\";\r\n var appName = \"安全邮件\";\r\n var content = document.getElementById(\"RegionPanel1_topRegion_editForm_FormRow5_subject\").value;\r\n\r\n window.external.SendMq(usercodes.join(\",\"), appId, appName, content);\r\n window.external.CloseBrowser();\r\n } catch (e) {\r\n Ext.MessageBox.show({\r\n title: \"系统提示\",\r\n msg: \"您的软件版本不支持推送消息!\",\r\n buttons: Ext.MessageBox.OK,\r\n icon: Ext.MessageBox.INFO\r\n });\r\n }\r\n }else{\r\n window.external.CloseBrowser();\r\n }\r\n }\r\n });\r\n}\r\nonMailSended = onSended;', NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('037dfda4d5984a71b23bde0359dac14', '写邮件', '协同办公', NULL, 'http://10.55.8.21/MailMng/SWriteLetter.aspx?cmd=new', 'http://10.55.12.110/asset/image/apps/mailnew.png', 'http://isms.etms.com/ens/login.aspx', 0, 800, 600, 3, NULL, 0, 'ETMS_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, 'function onSended() {\r\n Ext.MessageBox.show({\r\n title: \"系统提示\",\r\n msg: \"邮件发送成功,是否推送消息?\",\r\n buttons: Ext.MessageBox.OKCANCEL,\r\n icon: Ext.MessageBox.QUESTION,\r\n fn: function (btn) {\r\n if (btn == \"ok\") {\r\n try {\r\n var usercodes = [];\r\n var tolist = document.getElementsByName(\"toList\");\r\n var cclist = document.getElementsByName(\"ccList\");\r\n for (var i = 0; i < tolist.length; i++) {\r\n var n = tolist[i].value.split(\"(\")[1];\r\n usercodes.push(n.substring(0, n.length - 1));\r\n }\r\n for (var i = 0; i < cclist.length; i++) {\r\n var n = cclist[i].value.split(\"(\")[1];\r\n usercodes.push(n.substring(0, n.length - 1));\r\n }\r\n var appId = \"3930ab98da0a4e82aab182482313557\";\r\n var appName = \"安全邮件\";\r\n var content = document.getElementById(\"RegionPanel1_topRegion_editForm_FormRow5_subject\").value;\r\n\r\n window.external.SendMq(usercodes.join(\",\"), appId, appName, content);\r\n window.external.CloseBrowser();\r\n } catch (e) {\r\n Ext.MessageBox.show({\r\n title: \"系统提示\",\r\n msg: \"您的软件版本不支持推送消息!\",\r\n buttons: Ext.MessageBox.OK,\r\n icon: Ext.MessageBox.INFO\r\n });\r\n }\r\n }else{\r\n window.external.CloseBrowser();\r\n }\r\n }\r\n });\r\n}\r\nonMailSended = onSended;', NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('097b93c473474a8fb505dd6f6ef0cda2', '室FTP', '专业部应用', '', 'http://10.55.148.42:88/default.aspx', NULL, NULL, 1, 500, 400, 9999, '2018-01-10 09:53:27', NULL, NULL, 1, NULL, NULL, NULL, 0, '83bedd208c9a46eda1ce4e47705b3b73', NULL, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('1aa9313e83bc42de93663528627243d', '内导外申请', '协同办公', NULL, 'http://xxjh.cetc54.com/Web/MailInfoList.aspx', 'http://10.55.12.110/asset/image/apps/nw.png', 'http://isms.cetc54.com/ens/login.aspx', 0, 980, 600, 4, NULL, 0, 'CETC54_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('1c85d30bff54420c9878247ff54867e', '所网论坛', '54所门户', NULL, 'http://bbs.cetc54.com/', NULL, 'http://bbs.cetc54.com/', 0, 1024, 768, 3, NULL, 0, 'CETC54_BBS', 0, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('1aa9313e83bc42de93663528627243d', '内导外申请', '协同办公', NULL, 'http://xxjh.etms.com/Web/MailInfoList.aspx', 'http://10.55.12.110/asset/image/apps/nw.png', 'http://isms.etms.com/ens/login.aspx', 0, 980, 600, 4, NULL, 0, 'ETMS_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('1c85d30bff54420c9878247ff54867e', '所网论坛', 'XX所门户', NULL, 'http://bbs.etms.com/', NULL, 'http://bbs.etms.com/', 0, 1024, 768, 3, NULL, 0, 'ETMS_BBS', 0, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('3892169eda9444e9ac875b871496ea58', '知识平台', '专业部应用', '', 'http://10.55.148.39:8082/', NULL, NULL, 1, 500, 400, 9999, '2018-01-10 09:49:41', NULL, NULL, 1, NULL, NULL, NULL, 0, '83bedd208c9a46eda1ce4e47705b3b73', NULL, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('3930ab98da0a4e82aab182482313557', '我的邮件', '协同办公', NULL, 'http://10.55.8.21/Default.aspx', 'http://10.55.12.110/asset/image/apps/semail.png', 'http://isms.cetc54.com/ens/login.aspx', 0, 800, 600, 2, NULL, 0, 'CETC54_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('3930ab98da0a4e82aab182482313557', '我的邮件', '协同办公', NULL, 'http://10.55.8.21/Default.aspx', 'http://10.55.12.110/asset/image/apps/semail.png', 'http://isms.etms.com/ens/login.aspx', 0, 800, 600, 2, NULL, 0, 'ETMS_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('730f36f66c15494ebfbbdd7d048b3127', '内部信息管理平台', '专业部应用', '', 'http://10.55.148.39:1234/ens/login.aspx', NULL, NULL, 1, 500, 400, 9999, '2018-01-10 09:56:55', NULL, NULL, 1, NULL, NULL, NULL, 0, '83bedd208c9a46eda1ce4e47705b3b73', NULL, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('79c16ac130bb410eb98d521ed14c2a2', '所内公告', '54所门户', NULL, 'http://www.cetc54.com/NewsList.aspx?ClassID=10', NULL, NULL, 0, 1040, 768, 2, NULL, 0, 'CETC54_NEWS', 0, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('7cd8b8f56966432b9541285bfc79755', '个人日历', '协同项目', NULL, 'http://10.55.6.16:810/CETC54Platform.ashx', 'http://10.55.12.110/asset/image/apps/cal.png', 'http://isms.cetc54.com/ens', 0, NULL, NULL, 5, NULL, 0, 'CETC54_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=7&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('9a8a0a0b27754a73962c221ee3d2c43', '外导内列表', '协同办公', NULL, 'http://xxjh.cetc54.com/Web/MailReceiveListForPerson.aspx', 'http://10.55.12.110/asset/image/apps/wn.png', 'http://isms.cetc54.com/ens/login.aspx', 0, 1000, 600, 11, NULL, 0, 'CETC54_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('9e1161a94836445bbdbf6ddc6516af6', '我的任务', '协同项目', NULL, 'http://10.55.6.16:810/CETC54Platform.ashx', 'http://10.55.12.110/asset/image/apps/task.png', 'http://isms.cetc54.com/ens', 0, NULL, NULL, 9, NULL, 0, 'CETC54_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=2&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('a6ecc3eaa7524007b2880fc5c74ef2d', 'PDM', '协同项目', NULL, 'http://pdm.cetc54.com/Windchill/app/', NULL, 'http://pdmlogin.cetc54.com:8099/sso/login', 1, NULL, NULL, 13, NULL, 0, 'CETC54_PDM', 1, 'username', 'password', 'btnsubmit', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('79c16ac130bb410eb98d521ed14c2a2', '所内公告', 'XX所门户', NULL, 'http://www.etms.com/NewsList.aspx?ClassID=10', NULL, NULL, 0, 1040, 768, 2, NULL, 0, 'ETMS_NEWS', 0, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('7cd8b8f56966432b9541285bfc79755', '个人日历', '协同项目', NULL, 'http://10.55.6.16:810/ETMSPlatform.ashx', 'http://10.55.12.110/asset/image/apps/cal.png', 'http://isms.etms.com/ens', 0, NULL, NULL, 5, NULL, 0, 'ETMS_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=7&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('9a8a0a0b27754a73962c221ee3d2c43', '外导内列表', '协同办公', NULL, 'http://xxjh.etms.com/Web/MailReceiveListForPerson.aspx', 'http://10.55.12.110/asset/image/apps/wn.png', 'http://isms.etms.com/ens/login.aspx', 0, 1000, 600, 11, NULL, 0, 'ETMS_Ens', 0, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('9e1161a94836445bbdbf6ddc6516af6', '我的任务', '协同项目', NULL, 'http://10.55.6.16:810/ETMSPlatform.ashx', 'http://10.55.12.110/asset/image/apps/task.png', 'http://isms.etms.com/ens', 0, NULL, NULL, 9, NULL, 0, 'ETMS_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=2&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('a6ecc3eaa7524007b2880fc5c74ef2d', 'PDM', '协同项目', NULL, 'http://pdm.etms.com/Windchill/app/', NULL, 'http://pdmlogin.etms.com:8099/sso/login', 1, NULL, NULL, 13, NULL, 0, 'ETMS_PDM', 1, 'username', 'password', 'btnsubmit', 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('ba7e1baa65524afc8df3c58f7e0fe3e1', '部门FTP', '专业部应用', '', 'ftp://10.55.148.63/', NULL, NULL, 1, 500, 400, 9999, '2018-01-10 09:54:15', NULL, NULL, 1, NULL, NULL, NULL, 0, '83bedd208c9a46eda1ce4e47705b3b73', NULL, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('c024f0a1db424695811a33c00f5436e', '我的日志', '协同项目', NULL, 'http://10.55.6.16:810/CETC54Platform.ashx', 'http://10.55.12.110/asset/image/apps/rizhi.png', 'http://isms.cetc54.com/ens', 0, NULL, NULL, 6, NULL, 0, 'CETC54_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=3&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('c366b72c968b46f8b7d4592ff4535fb', '我的项目', '协同项目', NULL, 'http://10.55.6.16:810/CETC54Platform.ashx', 'http://10.55.12.110/asset/image/apps/project.png', 'http://isms.cetc54.com/ens', 0, NULL, NULL, 8, NULL, 0, 'CETC54_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=12&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('c73c51eea7a846249c111f1da466370', '所网主页', '54所门户', NULL, 'http://www.cetc54.com/', 'http://10.55.12.110/asset/image/apps/zhuye.png', NULL, 0, NULL, NULL, 1, NULL, 0, 'CETC54_Index', 1, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('fe24c4ac34444902a2129ec1dbf9ed4', '门户首页', '协同办公', NULL, 'http://isms.cetc54.com/ens/mainform.aspx', 'http://10.55.12.110/asset/image/apps/ens.png', 'http://isms.cetc54.com/ens/login.aspx', 0, NULL, NULL, 1, NULL, 0, 'CETC54_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, '$(\'.icon_switch\').closest(\'a\').hide();', NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('c024f0a1db424695811a33c00f5436e', '我的日志', '协同项目', NULL, 'http://10.55.6.16:810/ETMSPlatform.ashx', 'http://10.55.12.110/asset/image/apps/rizhi.png', 'http://isms.etms.com/ens', 0, NULL, NULL, 6, NULL, 0, 'ETMS_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=3&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('c366b72c968b46f8b7d4592ff4535fb', '我的项目', '协同项目', NULL, 'http://10.55.6.16:810/ETMSPlatform.ashx', 'http://10.55.12.110/asset/image/apps/project.png', 'http://isms.etms.com/ens', 0, NULL, NULL, 8, NULL, 0, 'ETMS_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, NULL, 'p=12&u=%eimp.username%', 1);
INSERT INTO `jcdp_chat_apps` VALUES ('c73c51eea7a846249c111f1da466370', '所网主页', 'XX所门户', NULL, 'http://www.etms.com/', 'http://10.55.12.110/asset/image/apps/zhuye.png', NULL, 0, NULL, NULL, 1, NULL, 0, 'ETMS_Index', 1, NULL, NULL, NULL, 1, NULL, 0, NULL, NULL, NULL, 1);
INSERT INTO `jcdp_chat_apps` VALUES ('fe24c4ac34444902a2129ec1dbf9ed4', '门户首页', '协同办公', NULL, 'http://isms.etms.com/ens/mainform.aspx', 'http://10.55.12.110/asset/image/apps/ens.png', 'http://isms.etms.com/ens/login.aspx', 0, NULL, NULL, 1, NULL, 0, 'ETMS_Ens', 1, 'txtUser', 'txtPass', 'lbtnLogin', 1, NULL, 0, NULL, '$(\'.icon_switch\').closest(\'a\').hide();', NULL, 1);
-- ----------------------------
-- Table structure for jcdp_chat_apps_my
@ -2844,7 +2844,7 @@ INSERT INTO `jcdp_sys_dict_item` VALUES ('7c0e171f83e246049dfe114960d74484', '
INSERT INTO `jcdp_sys_dict_item` VALUES ('7efcc6f5ad5c40bc9d2599f98edda540', '生活休闲', '4', 1, '5b3253e4e34e4aa499337c2d10f1c4ad');
INSERT INTO `jcdp_sys_dict_item` VALUES ('7f21722c44fb491bba70ec7a4cc6d7e4', 'Action', '4', 1, '13bd478c63e649d396dd08789dfebd98');
INSERT INTO `jcdp_sys_dict_item` VALUES ('8403e4be247847ed8168d055ada59b2d', '党组织', '4', 1, '2dab66bce35542a8b806d91077f2fe45');
INSERT INTO `jcdp_sys_dict_item` VALUES ('86aa6ee1e7aa4f17a36920e831b9c20e', '传统样式', 'cetc54', 1, '854f99d670914902a804d3b2f2edc9ea');
INSERT INTO `jcdp_sys_dict_item` VALUES ('86aa6ee1e7aa4f17a36920e831b9c20e', '传统样式', 'etms', 1, '854f99d670914902a804d3b2f2edc9ea');
INSERT INTO `jcdp_sys_dict_item` VALUES ('8d307afecc33489baaa733ef89ea5a28', '其他', '9', 1, '2dab66bce35542a8b806d91077f2fe45');
INSERT INTO `jcdp_sys_dict_item` VALUES ('8f1e7f93c0514d778d8d18a3197cfe31', '更新包', '1', 1, 'ff301d7317fd4801b460e3e001a8301e');
INSERT INTO `jcdp_sys_dict_item` VALUES ('96407128a74d4370ad29134bd893c15a', '财会考试', '3', 1, '981fbcaada804304b5f960b745b0068f');
@ -2890,7 +2890,7 @@ CREATE TABLE `jcdp_sys_feedback` (
-- ----------------------------
-- Records of jcdp_sys_feedback
-- ----------------------------
INSERT INTO `jcdp_sys_feedback` VALUES ('adasd', '{\"app_version\":\"1.6\",\"appid\":\"com.cetc54.moa\",\"imei\":\"b1b40089914e63ab\",\"md\":\"MI 6\",\"net\":\"6\",\"os\":\"7.1.1\",\"p\":\"a\",\"plus_version\":\"1.9.9.35689\"}', 'fe24c4ac34444902a2129ec1debf9ed4', 'Y08066', '超级管理员', '[\"https://120.77.211.40:8443/feedback/feedback/getPic?path=V0VCLUlORlx1cGxvYWRGaWxlcy91c2VyQXZhdGFycy8yMDE3MDkyODE1MjcxNF9mZDBiYWU0MmY3OTc0YmE2OWNmMzM3NTgwMTc4NTc1OC5wbmc=\", \"https://120.77.211.40:8443/feedback/feedback/getPic?path=V0VCLUlORlx1cGxvYWRGaWxlcy91c2VyQXZhdGFycy8yMDE3MDkyODE1MjcxNF8wN2QwNTYwYjUwZjM0MTcyYjFjMGU3MDg3ZmUyOTlkZS5wbmc=\"]', 'sadfasfd', '123', 4, 'AE143E112111CD7AA2730BACB4D4FEA2', '2017-10-31 16:08:13');
INSERT INTO `jcdp_sys_feedback` VALUES ('adasd', '{\"app_version\":\"1.6\",\"appid\":\"com.etms.moa\",\"imei\":\"b1b40089914e63ab\",\"md\":\"MI 6\",\"net\":\"6\",\"os\":\"7.1.1\",\"p\":\"a\",\"plus_version\":\"1.9.9.35689\"}', 'fe24c4ac34444902a2129ec1debf9ed4', 'Y08066', '超级管理员', '[\"https://120.77.211.40:8443/feedback/feedback/getPic?path=V0VCLUlORlx1cGxvYWRGaWxlcy91c2VyQXZhdGFycy8yMDE3MDkyODE1MjcxNF9mZDBiYWU0MmY3OTc0YmE2OWNmMzM3NTgwMTc4NTc1OC5wbmc=\", \"https://120.77.211.40:8443/feedback/feedback/getPic?path=V0VCLUlORlx1cGxvYWRGaWxlcy91c2VyQXZhdGFycy8yMDE3MDkyODE1MjcxNF8wN2QwNTYwYjUwZjM0MTcyYjFjMGU3MDg3ZmUyOTlkZS5wbmc=\"]', 'sadfasfd', '123', 4, 'AE143E112111CD7AA2730BACB4D4FEA2', '2017-10-31 16:08:13');
-- ----------------------------
-- Table structure for jcdp_sys_log
@ -3571,7 +3571,7 @@ INSERT INTO `jcdp_sys_module` VALUES ('39fbd45f6da740a8815f483781a56567', '|root
INSERT INTO `jcdp_sys_module` VALUES ('3b566f494c244193a5a943ec73378e66', '|root|28c3a95347024c4fb1b6395887a09409|d1db8883db7f4bc2a03253a2c94aa0bf|fca7520f7cda4daa9ebcebaa8b52c54a|a7c9859b798a40c58f6b7429a8c926c2|68d13963526748ab82a99116f190a996|3b566f494c244193a5a943ec73378e66|', '2.部门角色', '/role/role/list', NULL, '68d13963526748ab82a99116f190a996', 0, 0, 'textfield_key.png', 1, NULL, NULL, 0, 5, 2, 0);
INSERT INTO `jcdp_sys_module` VALUES ('3c1811fd49ba471f87c8172dfa6e813b', '|root|510998e99c924665806c0e20bbbcc2b2|76ccbd8e2c7c4ffb8709396dc5059526|3c1811fd49ba471f87c8172dfa6e813b|', '部门领导审批', '/train/outtrain/deleteindex?pg=7', NULL, '76ccbd8e2c7c4ffb8709396dc5059526', 0, 0, '', 1, '外派培训计划删除', NULL, 2, 0, 277, 1);
INSERT INTO `jcdp_sys_module` VALUES ('3df773b762d54053bf6e9f3b53a0184c', '|root|ba85127869a3419cbc279cf959967547|3df773b762d54053bf6e9f3b53a0184c|', '学员签到/在线学习', '/train/plantodo/createclassindex?pg=5', NULL, 'ba85127869a3419cbc279cf959967547', 0, 0, '', 1, '教育培训计划实施', NULL, 4, 1, 197, 1);
INSERT INTO `jcdp_sys_module` VALUES ('3e353b0736064f4b83e0489a7e69fd7e', '|root|975338ae351a4a19af2032fc360af687|3e353b0736064f4b83e0489a7e69fd7e|', '所网主页', 'http://www.cetc54.com', NULL, '975338ae351a4a19af2032fc360af687', 0, 0, '', 1, '任务管理', NULL, 9, 0, 282, 1);
INSERT INTO `jcdp_sys_module` VALUES ('3e353b0736064f4b83e0489a7e69fd7e', '|root|975338ae351a4a19af2032fc360af687|3e353b0736064f4b83e0489a7e69fd7e|', '所网主页', 'http://www.etms.com', NULL, '975338ae351a4a19af2032fc360af687', 0, 0, '', 1, '任务管理', NULL, 9, 0, 282, 1);
INSERT INTO `jcdp_sys_module` VALUES ('408d00a441b2442a9b74781db1f77f3e', '|root|93093b73a7be4daf837e7f88dd51495a|e84381fd49f54ae487e241f152e808d0|408d00a441b2442a9b74781db1f77f3e|', '已生成计划', '/train/groupInPlan/?pg=5', NULL, 'e84381fd49f54ae487e241f152e808d0', 0, 0, '', 1, '部门级计划内计划制定', NULL, 5, 1, 262, 1);
INSERT INTO `jcdp_sys_module` VALUES ('40aa8106fa8f48ab97507b221606732f', '|root|40aa8106fa8f48ab97507b221606732f|', '学习资料管理', '', NULL, 'root', 0, 0, '', 1, '教育培训管理系统', NULL, 7, 0, 217, 1);
INSERT INTO `jcdp_sys_module` VALUES ('4269c094e4cc437ba9db9dd71428d547', '|root|28c3a95347024c4fb1b6395887a09409|b5573ec04afe4602b4b17775ac300267|06959fba43e54a98a5902bc90cede514|e3b370a851ec440391f8c4531b66f7ed|02d034df6d6047bf81cdaa630dba3d57|4269c094e4cc437ba9db9dd71428d547|', '2.部门', '/log/log/list', NULL, '02d034df6d6047bf81cdaa630dba3d57', 0, 0, 'textfield_key.png', 1, NULL, NULL, 0, 5, 2, 0);
@ -3777,7 +3777,7 @@ INSERT INTO `jcdp_sys_org` VALUES ('00abc5089d2f4891a83ce81dc8ef57e4', '|root|23
INSERT INTO `jcdp_sys_org` VALUES ('056d928db141405fb73b7bd635dcbdf1', '|root|23bbc6c7403740119b17d8d8cd5d3d41|e5a1527bd7b44f00887da4a253b3756a|056d928db141405fb73b7bd635dcbdf1|', '信息电子化组', NULL, 'e5a1527bd7b44f00887da4a253b3756a', 1, 0, '', 1, 'XXZX', NULL, 30, '0540012006', 2);
INSERT INTO `jcdp_sys_org` VALUES ('0c749f875b684957a119e11f3175f0ee', '|root|23bbc6c7403740119b17d8d8cd5d3d41|e5a1527bd7b44f00887da4a253b3756a|0c749f875b684957a119e11f3175f0ee|', '应用支持组', NULL, 'e5a1527bd7b44f00887da4a253b3756a', 1, 0, '', 1, 'XXZX', NULL, 15, '0540012003', 2);
INSERT INTO `jcdp_sys_org` VALUES ('1647c07823b14295915ecd6f08d4b78e', '|root|23bbc6c7403740119b17d8d8cd5d3d41|24b09331aba242068c5d9abe64a5fbb1|a39fe42cea154b0380ef0e733846cb81|1647c07823b14295915ecd6f08d4b78e|', 'JAVA技术组', NULL, 'a39fe42cea154b0380ef0e733846cb81', 0, 0, '', 1, '软件室', NULL, 53, '53', 2);
INSERT INTO `jcdp_sys_org` VALUES ('23bbc6c7403740119b17d8d8cd5d3d41', '|root|23bbc6c7403740119b17d8d8cd5d3d41|', '中国电科54所', NULL, 'root', 0, 1, '', 1, '组织架构树', NULL, 1, '001', 1);
INSERT INTO `jcdp_sys_org` VALUES ('23bbc6c7403740119b17d8d8cd5d3d41', '|root|23bbc6c7403740119b17d8d8cd5d3d41|', 'XX公司', NULL, 'root', 0, 1, '', 1, '组织架构树', NULL, 1, '001', 1);
INSERT INTO `jcdp_sys_org` VALUES ('24b09331aba242068c5d9abe64a5fbb1', '|root|23bbc6c7403740119b17d8d8cd5d3d41|24b09331aba242068c5d9abe64a5fbb1|', '专用集成电路与应用软件专业部', NULL, '23bbc6c7403740119b17d8d8cd5d3d41', 0, 0, '', 1, 'CENC', NULL, 50, '001011015', 1);
INSERT INTO `jcdp_sys_org` VALUES ('2a6bd512230c477399a8e8cf145d9d0c', '|root|23bbc6c7403740119b17d8d8cd5d3d41|24b09331aba242068c5d9abe64a5fbb1|8b5cba8e51f74397b7b23361dbe5b0fd|2a6bd512230c477399a8e8cf145d9d0c|', '逻辑三组', NULL, '8b5cba8e51f74397b7b23361dbe5b0fd', 1, 0, NULL, 1, '集成电路室', NULL, 43, '43', 2);
INSERT INTO `jcdp_sys_org` VALUES ('34c58fd9c04044338fec6008988c1977', '|root|23bbc6c7403740119b17d8d8cd5d3d41|e5a1527bd7b44f00887da4a253b3756a|34c58fd9c04044338fec6008988c1977|', '期刊编辑组', NULL, 'e5a1527bd7b44f00887da4a253b3756a', 0, 0, '', 1, 'XXZX', NULL, 35, '0540012007', 2);
@ -3843,15 +3843,15 @@ INSERT INTO `jcdp_sys_parameter` VALUES ('0b857396a13b4f8da127adb5f45ccd3d', '
INSERT INTO `jcdp_sys_parameter` VALUES ('0d46e40308004bc98e6f2add51f2553d', '平台远程地址', 'jcdpPlatformUrl', 'http://10.2.98.33:8080/jcdp', 'db42a5ecae054732bad470ab4a565822', '注意该地址为生成应用的JCDP平台地址该配置项可以获取版本差异进行项目更新(未来规划功能)');
INSERT INTO `jcdp_sys_parameter` VALUES ('184c747d96894fd2af0734c23b9e7e80', '会话失效提示', 'sessionInvalidMsg', '会话已失效,请重新登录!', 'c1b5c67d77f9469da130f71d5d1d8f02', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('1efa0782adc94ee2bf026149c3f00c77', '是否随机设置用户密码', 'user_default_password_random', 'true', 'cd537001b4454282aa83db0a49b852dc', 'false-使用默认密码使用user_default_password参数true-使用随机密码');
INSERT INTO `jcdp_sys_parameter` VALUES ('2db17879d69742638dd757b8719311a7', '技术支持', 'jcdp.app.techSupport', '中国电子科技集团公司第五十四研究所', 'db42a5ecae054732bad470ab4a565822', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('2db17879d69742638dd757b8719311a7', '技术支持', 'jcdp.app.techSupport', 'XX电子科技集团XX研究所', 'db42a5ecae054732bad470ab4a565822', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('3526a08503744e3a8dbeada42d7e48ae', '静态文件地址', 'assetUrl', 'local', 'db42a5ecae054732bad470ab4a565822', 'local-使用本地服务器\r\n远程服务器例如http://10.2.98.33:4545/jcdp');
INSERT INTO `jcdp_sys_parameter` VALUES ('3dc3b549f6854c7d91a8dd936781ec46', '版权信息', 'jcdp.app.copyright', 'Copyright © 2015-2017 中国电子科技集团公司第五十四研究所', 'db42a5ecae054732bad470ab4a565822', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('3dc3b549f6854c7d91a8dd936781ec46', '版权信息', 'jcdp.app.copyright', 'Copyright © 2015-2017 XX电子科技集团XX研究所', 'db42a5ecae054732bad470ab4a565822', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('4177232a5b244e9797bc47ff7d9d5c2d', '删除用户类型', 'user_delete_flag', '0', 'cd537001b4454282aa83db0a49b852dc', '0不从数据库删除用户信息\r\n1删除用户及相关信息。');
INSERT INTO `jcdp_sys_parameter` VALUES ('43a420e05f5b4159a562d0ce1fa1e4bb', '密码重置邮件模板', 'resetpassword_temp', '${username}<br/>\r\n 欢迎您使用<a href=\"${rootUrl}\" target=\"_blank\">${sysname}</a>。<br/>\r\n您的密码已重置重置后的账号信息如下<br/>\r\n用户名${loginname}<br/>\r\n密码${password}<br/>', 'cd537001b4454282aa83db0a49b852dc', 'freemarker模板\r\nrootUrl:网站地址\r\nloginname:登录账号\r\nusername:姓名\r\npassword:密码\r\nsysname:系统名称');
INSERT INTO `jcdp_sys_parameter` VALUES ('45b89ec7bb74495a83c1ad7041d27807', '系统运行模式', 'jcdpRunMode', 'debug', 'db42a5ecae054732bad470ab4a565822', 'debug-调试模式release-发布模式\n注意改变运行模式只改变服务层service、应用层运行模式controller若想改变框架层运行模式请修改jcdp.properties');
INSERT INTO `jcdp_sys_parameter` VALUES ('526295e82cc4433a9de59015ed6cdd35', 'RabbitMQ配置', 'rabbitmq', '{\r\nservers:\r\n[\r\n{server:\"10.55.12.109:5672\"}\r\n],\r\nusername:\"chatuser\",\r\npassword:\"comerc@cetc54.com\"\r\n}', 'db42a5ecae054732bad470ab4a565822', 'RabbitMQ消息队列配置\r\n{\r\n servers:[{server:\"\"}],//服务器列表\r\n username:\"admin\",//用户名\r\n passwrod:\"admin\"//密码\r\n}');
INSERT INTO `jcdp_sys_parameter` VALUES ('526295e82cc4433a9de59015ed6cdd35', 'RabbitMQ配置', 'rabbitmq', '{\r\nservers:\r\n[\r\n{server:\"10.55.12.109:5672\"}\r\n],\r\nusername:\"chatuser\",\r\npassword:\"comerc@etms.com\"\r\n}', 'db42a5ecae054732bad470ab4a565822', 'RabbitMQ消息队列配置\r\n{\r\n servers:[{server:\"\"}],//服务器列表\r\n username:\"admin\",//用户名\r\n passwrod:\"admin\"//密码\r\n}');
INSERT INTO `jcdp_sys_parameter` VALUES ('52e951402a5e4f51adb13806a64cf6ad', '16X16图标路径', 'Icon16Path', '/icon/Icon16', 'ac52e67a184e4302b157a008dbe9f11a', '相对静态文件路径');
INSERT INTO `jcdp_sys_parameter` VALUES ('58008d2b65394dd090d98d937324cab4', '页面风格', 'pageStyle', '{Firefox:\"cetc54\",MSIE:\"cetc54\"}', 'db42a5ecae054732bad470ab4a565822', 'cetc54-传统风格适配IE低版本\r\nsmart-响应式布局,适配现代浏览器。');
INSERT INTO `jcdp_sys_parameter` VALUES ('58008d2b65394dd090d98d937324cab4', '页面风格', 'pageStyle', '{Firefox:\"etms\",MSIE:\"etms\"}', 'db42a5ecae054732bad470ab4a565822', 'etms-传统风格适配IE低版本\r\nsmart-响应式布局,适配现代浏览器。');
INSERT INTO `jcdp_sys_parameter` VALUES ('6c9486464aaa4107b1e5b61a957838cc', '用户头像上传目录', 'jcdp.uploadFile.userImg', 'userAvatars', 'db42a5ecae054732bad470ab4a565822', '该路径在jcdp.uploadFileRoot之下');
INSERT INTO `jcdp_sys_parameter` VALUES ('7c62d02179be4107adeab84bfc1e5a88', '服务器端口', 'jcdp.serverPort', '{enable:false,http:80,https:443}', 'db42a5ecae054732bad470ab4a565822', '{\r\nenable:true,-----是否启用端口配置\r\nhttp:80,----http服务端口\r\nhttps:43----https服务端口\r\n}');
INSERT INTO `jcdp_sys_parameter` VALUES ('80d6ddf63dc94a268bde7e28ac7e9b4c', '新增用户发送邮件模板', 'addUserEmail_temp', '${username}<br/>\r\n 欢迎您使用<a href=\"${rootUrl}\" target=\"_blank\">${sysname}</a>。<br/>\r\n你的账号信息<br/>\r\n用户名${loginname}<br/>\r\n密码${password}<br/>', 'cd537001b4454282aa83db0a49b852dc', 'freemarker模板\r\nrootUrl:网站地址\r\nloginname:登录账号\r\nusername:姓名\r\npassword:密码\r\nsysname:系统名称');
@ -3870,7 +3870,7 @@ INSERT INTO `jcdp_sys_parameter` VALUES ('d315d1045dd4417681ddd7befe402ee0', '
INSERT INTO `jcdp_sys_parameter` VALUES ('d5874f7516d4431ba19585db137fd73f', '首页选中是否刷新', 'portalUpdateOnOpen', 'true', '9f8cac9e3b73407a8106f37268e70ae9', 'true-打开时刷新 false-永不刷新');
INSERT INTO `jcdp_sys_parameter` VALUES ('dc53e73e4ee047158e5a5613deb17fe3', '32X32图标路径', 'Icon32Path', '/icon/Icon32', 'ac52e67a184e4302b157a008dbe9f11a', '相对静态文件路径');
INSERT INTO `jcdp_sys_parameter` VALUES ('ddc8afea829140cd89b66c379a780842', '联系管理员', 'contact_admin', '请联系管理员电话88888', 'c1b5c67d77f9469da130f71d5d1d8f02', NULL);
INSERT INTO `jcdp_sys_parameter` VALUES ('e9552dbdd23546b58f2f1bcebf5488a6', '发送邮件配置', 'sendEmailConfig', '{\r\nhost:\'smtp.cetc54.com\',\r\nusername:\'Y08066@cetc54.com\',\r\npassword:\'cetc54@123456\'\r\n}', 'db42a5ecae054732bad470ab4a565822', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('e9552dbdd23546b58f2f1bcebf5488a6', '发送邮件配置', 'sendEmailConfig', '{\r\nhost:\'smtp.etms.com\',\r\nusername:\'Y08066@etms.com\',\r\npassword:\'etms@123456\'\r\n}', 'db42a5ecae054732bad470ab4a565822', '');
INSERT INTO `jcdp_sys_parameter` VALUES ('ee49e548da0a4165a7ffdd6a8ba5c2f4', '图标样式文件名称', 'IconCSSName', 'icon.css', 'ac52e67a184e4302b157a008dbe9f11a', '可以通过修改该值改变icon样式');
INSERT INTO `jcdp_sys_parameter` VALUES ('f0794cf8add246ce89012b5698d1fbb0', '首页地址', 'portalUrl', 'index/portal', '9f8cac9e3b73407a8106f37268e70ae9', NULL);
@ -7128,7 +7128,7 @@ INSERT INTO `jcdp_sys_user_ext` VALUES ('05daab960ff8450d9cbe84cd3c7dd260', '123
INSERT INTO `jcdp_sys_user_ext` VALUES ('068768e1eb764837bc4d98f0216b94e7', '', '13633219219', '4462', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('07b75922b82149ab899bee340a47970a', '', '15931102653', '8464', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('07c1963549914dac88e8ba6092ba3393', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('082538db933e477598aa3e87ec2b21e8', 'yuehw@cetc54.com', '15130145015', '4101', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('082538db933e477598aa3e87ec2b21e8', 'yuehw@etms.com', '15130145015', '4101', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('08392ef87499474a82a8954c7ced7390', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('097879d75fc54dc285aff704d8734a21', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('0980b8836368476297e98155c859f632', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
@ -7156,7 +7156,7 @@ INSERT INTO `jcdp_sys_user_ext` VALUES ('1cb2fb93db774202bdd2532fa57d9bff', NULL
INSERT INTO `jcdp_sys_user_ext` VALUES ('1d8094115f5c4c6ab8c38c414a65d6f4', '123', '123', '123', '河北省石家庄市中山西路', '050081', NULL, NULL, '8471', NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('1db1801a29f344b780f018cbffc9b3f1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('1dce74df53b44ecfbe89edc802914bf8', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('1df48ce2f70e46a19eccb6b88b64a4bb', 'Y08066@cetc54.com', '13780306726', '8559', '', '', '', NULL, '每天进步一点点!', NULL, 'http://localhost:8080/jcdp/index/getFile?type=avatars&url=20180117153130476_AnZhuangRuanJian.png', '20180117153130476_AnZhuangRuanJian.png', 'http://localhost:8080/jcdp/index/getFile?type=avatars&url=20180117151157651_joos2.jpg');
INSERT INTO `jcdp_sys_user_ext` VALUES ('1df48ce2f70e46a19eccb6b88b64a4bb', 'Y08066@etms.com', '13780306726', '8559', '', '', '', NULL, '每天进步一点点!', NULL, 'http://localhost:8080/jcdp/index/getFile?type=avatars&url=20180117153130476_AnZhuangRuanJian.png', '20180117153130476_AnZhuangRuanJian.png', 'http://localhost:8080/jcdp/index/getFile?type=avatars&url=20180117151157651_joos2.jpg');
INSERT INTO `jcdp_sys_user_ext` VALUES ('1e89fb25e0734ae1bf339efdac68c85f', '', '13933866220', '8525', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('1eac9b5fdd784b00b1e2037e8d8d6a22', '', '13483131054', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('200c68d821984e73a4b6e1b86eedaabe', '396105640@qq.com', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
@ -7228,7 +7228,7 @@ INSERT INTO `jcdp_sys_user_ext` VALUES ('541163ddcaec4751b6d6e86207cc48c1', NULL
INSERT INTO `jcdp_sys_user_ext` VALUES ('545b2a2ca2a04583b6dc0dddc8c8ab29', '', '13613212837', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('5619c0acad764d84989e69bc5c57b461', '', '', '110', '河北省石家庄市中山西路', '050081', '', NULL, '我是张锐!', NULL, NULL, NULL, '');
INSERT INTO `jcdp_sys_user_ext` VALUES ('561fa58b43ec443f8420e9637e4d38c0', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('5676921ac94b4633a614892676567bfb', 'P12189@CETC54.COM', '13933157950', '8469', '', '', '', NULL, '啊我饿一屋鱼哎诶喂熬偶油', NULL, '', NULL, '');
INSERT INTO `jcdp_sys_user_ext` VALUES ('5676921ac94b4633a614892676567bfb', 'P12189@ETMS.COM', '13933157950', '8469', '', '', '', NULL, '啊我饿一屋鱼哎诶喂熬偶油', NULL, '', NULL, '');
INSERT INTO `jcdp_sys_user_ext` VALUES ('57e5a30a134f47c0b76178ac345d5465', '', '13933840108', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('597971047f3541dc94171b6f5d114c29', '396105640@qq.com', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('5b0037df0e3b4bfaa89c36d74e5c7a81', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
@ -7284,7 +7284,7 @@ INSERT INTO `jcdp_sys_user_ext` VALUES ('82a04b4689d84862be5c4b600b099fc1', NULL
INSERT INTO `jcdp_sys_user_ext` VALUES ('82bb85dfa7dc4330893ac38fda2ae74d', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('83b9caffe40948618028f7ec4a95ad3a', '', '15030189132', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('83bb22a54cc4492e8fa3043a21a001ec', '', '17732150947', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('83bedd208c9a46eda1ce4e47705b3b73', 'p16106@cetc54.com', '17603202982', '8472', '', '', NULL, NULL, '喂!啊?伐木累啊。。。', NULL, 'http://10.55.148.42:88/filedownload.aspx?path=EIM.Update\\EIM_Alpha\\Emotions\\6.gif', NULL, 'http://10.55.148.42:88/filedownload.aspx?path=EIM.Update\\EIM_Alpha\\Emotions\\6.gif');
INSERT INTO `jcdp_sys_user_ext` VALUES ('83bedd208c9a46eda1ce4e47705b3b73', 'p16106@etms.com', '17603202982', '8472', '', '', NULL, NULL, '喂!啊?伐木累啊。。。', NULL, 'http://10.55.148.42:88/filedownload.aspx?path=EIM.Update\\EIM_Alpha\\Emotions\\6.gif', NULL, 'http://10.55.148.42:88/filedownload.aspx?path=EIM.Update\\EIM_Alpha\\Emotions\\6.gif');
INSERT INTO `jcdp_sys_user_ext` VALUES ('84337ce99ca24ba886bad2cc59f048b9', '396105640@qq.com', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('84ac0ac6d4464f73a11f7e5405041cd4', '', '17732187353', '8648', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('84d6e483e21b4027985203b26dedb769', '123', '123', '123', '河北省石家庄市中山西路', '050081', NULL, NULL, 'sds', NULL, NULL, NULL, NULL);
@ -7362,7 +7362,7 @@ INSERT INTO `jcdp_sys_user_ext` VALUES ('b5476fbcc39f43108da6d6896ce607b2', '',
INSERT INTO `jcdp_sys_user_ext` VALUES ('b7bb532db0e34631a34a61384f9c5b8e', '', '13582813096', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('bc2ca8f58ff845aab2fdd6560a0a3b34', '', '18831190639', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('be388be5d7994bf6a8a321f2c85328f3', '', '', '', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('be5eed01ec694ac1b72539887bec1235', 'Y11044@CETC54.com', '15031192529', '8560', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('be5eed01ec694ac1b72539887bec1235', 'Y11044@ETMS.com', '15031192529', '8560', '', '', '', NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('beefed50d1fa4e258842b5e46acf136b', '', '13623312144', '4625', '', '', '', NULL, '测试', NULL, NULL, NULL, '');
INSERT INTO `jcdp_sys_user_ext` VALUES ('c024f0a1db424695811a33c00f5436ee', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jcdp_sys_user_ext` VALUES ('c219eb3b489e49a5af65dbc7f42754c8', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL);

View File

@ -26,7 +26,7 @@ jcdp.db.url=jdbc:mysql://10.55.68.235:3306/etms?useSSL=false&useUnicode=true&cha
jcdp.runMode=release
#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD;\uFFFD\uFFFD\uFFFD\u05B8\uFFFD
mvc.controllerBasePackage=com.cetc54.jcdp.web.controller
mvc.controllerBasePackage=com.etms.jcdp.web.controller
mvc.viewBasePath=/
#Spring \uFFFD\uFFFD\uFFFD\uFFFD

View File

@ -3,7 +3,7 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<link type="image/x-icon" href="${appIco}" rel="icon" />
<link id="uiTheme" rel="stylesheet" type="text/css"
href="${asset_path}/thirdlib/CECT54.WebUI/themes/bootstrap/cetc54.ui.all.css"/>
href="${asset_path}/thirdlib/CECT54.WebUI/themes/bootstrap/etms.ui.all.css"/>
<link rel="stylesheet" type="text/css"
href="${asset_path}/thirdlib/CECT54.WebUI/plugins/ztree/css/zTreeStyle/zTreeStyle.css"/>
<link rel="stylesheet" type="text/css"

View File

@ -1,6 +1,6 @@
<input type="hidden" value="${webRoot}" id="hdWebroot">
<script type="text/javascript" src="${asset_path}/thirdlib/CECT54.WebUI/json3.min.js"></script>
<script type="text/javascript" src="${asset_path}/thirdlib/CECT54.WebUI/template.js"></script>
<script type="text/javascript" src="${asset_path}/thirdlib/CECT54.WebUI/cetc54.ui.all.js"></script>
<script type="text/javascript" src="${asset_path}/thirdlib/CECT54.WebUI/etms.ui.all.js"></script>
<script type="text/javascript" src="${asset_jspath}/globalConfig.js"></script>
<script type="text/javascript" src="${asset_jspath}/ui.dictCombox.js"></script>

Some files were not shown because too many files have changed in this diff Show More