chore: import verified syly2 maintenance baseline without embedded credentials
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
.DS_Store
|
||||
.idea/
|
||||
.settings/
|
||||
.classpath
|
||||
.project
|
||||
target/
|
||||
.local/
|
||||
runtime/
|
||||
secrets/
|
||||
*.log
|
||||
*.war
|
||||
*.class
|
||||
*.pyc
|
||||
__pycache__/
|
||||
*.bak
|
||||
*.lastUpdated
|
||||
_remote.repositories
|
||||
*.pem
|
||||
*.key
|
||||
*.p12
|
||||
*.pfx
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
**/sanya_ch*.sql
|
||||
config/*.local.properties
|
||||
|
||||
# Historical mobile release binaries are distributed separately.
|
||||
*.apk
|
||||
*.ipa
|
||||
@@ -0,0 +1,17 @@
|
||||
[extend]
|
||||
useDefault = true
|
||||
|
||||
[allowlist]
|
||||
description = "Reviewed false positives: inventory SHA-256, PEM serialization code, public login userKey"
|
||||
condition = "AND"
|
||||
paths = [
|
||||
'^docs/evidence/original-source-manifest\.json$',
|
||||
'^src/main/webapp/plug-in/jsencrypt/jsencrypt\.min\.js$',
|
||||
'^src/main/java/com/zzc/app/login/UserLoginController\.java$',
|
||||
]
|
||||
regexTarget = "match"
|
||||
regexes = [
|
||||
'["\s:]+[0-9a-f]{64}',
|
||||
'getPrivateBaseKeyB64\(\)',
|
||||
'key = "[0-9a-f]{32}"',
|
||||
]
|
||||
@@ -0,0 +1,33 @@
|
||||
# 三亚旅游统计管理系统 syly2
|
||||
|
||||
本仓库从 2026-10-29 交接包的**外层 Maven 工程**建立维护基线。原始清单的 5,302 个文件已逐一核验 SHA-256,与当天成功构建和 UAT 部署的源文件一致。
|
||||
|
||||
入库版本包含已验证的三处 Java 8/Linux 编译兼容修正:POM 使用平台路径分隔符,两个统计 Controller 删除未使用的 JDK 内部类导入。数据库备份、历史 target、内层重复工程及真实凭据不进入仓库。
|
||||
|
||||
## 构建
|
||||
|
||||
需要 JDK 8、Maven 3.9.11。原工程包含 6 个中央仓库缺失的旧组件,脚本将交接 JAR 安装到项目专用 Maven 仓库,再编译 WAR:
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=/absolute/path/to/jdk8
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
bash scripts/build.sh
|
||||
```
|
||||
|
||||
可通过 `MVN=/absolute/path/to/mvn` 指定 Maven,通过 `MAVEN_REPO_LOCAL=/absolute/path/to/repository` 指定依赖缓存。输出为 `target/syly.war`。脚本显式跳过原有测试编译和执行;这些历史测试含外部系统访问,不能作为离线单元测试运行。`src/main/com` 沿用原 POM,不属于主编译源码根。
|
||||
|
||||
## 部署配置与密钥
|
||||
|
||||
入库前移出了数据库、邮件、短信及诊断工具中的硬编码凭据,RSA 私钥和 AES 密钥改由 `RuntimeSecrets` 读取。配置模板位于 `config/secrets.example.properties`,支持同名环境变量,或 `SYLY_SECRETS_FILE` / JVM 参数 `-Dsyly.secrets.file=/absolute/private/path` 指向的私有 properties 文件。环境变量优先;必需密钥缺失时明确报错,不自动生成替代密钥。
|
||||
|
||||
**历史数据必须使用原 AES 密钥;当前前端公钥要求原 RSA 私钥配对。** 这些值从原交接配置经私有渠道取得,本次没有轮换密钥。私有配置应保存在仓库和 WAR 外,限制为运行用户可读。邮件、短信为空时须继续禁用相关外部任务。
|
||||
|
||||
`src/main/resources/dbconfig.properties`、`sysConfig.properties` 与 `zzc/zzc_database.properties` 是去除凭据的配置基线;部署前在运行副本中配置实际数据库/邮件连接。默认外部接口指向本地禁用地址。Druid 监控 Servlet 按此前 UAT 的做法移除。
|
||||
|
||||
`ops/uat-build`、`ops/uat-deploy` 保存**此前 UAT 的操作脚本与说明**,含当次路径和原始产物哈希检查。它们是历史复现资料,不是当前仓库 WAR 的直接发布命令。现有 UAT 未被本次入库操作更新。
|
||||
|
||||
## 验证范围
|
||||
|
||||
见 [验证记录](docs/VERIFICATION.md) 和 `docs/evidence/`。此前 UAT 已通过编译、部署、登录及基础页面检查,但仍存在旧 JavaScript 报错和菜单内嵌页面切换问题;全量报表、业务填报、附件及省级接口尚未验收。
|
||||
|
||||
入库时 UAT 网络不可达,因此对凭据移出后的版本执行本地 Java 8 编译和离线加解密兼容检查,不能将此前 UAT 运行结果视为当前提交的完整运行验收。
|
||||
@@ -0,0 +1,15 @@
|
||||
# Copy outside the checkout/WAR; restrict permissions to the runtime user.
|
||||
# Set SYLY_SECRETS_FILE or -Dsyly.secrets.file=/absolute/private/path.
|
||||
# Preserve the existing keys for historical data and the existing RSA public key.
|
||||
SYLY_AES_KEY=
|
||||
SYLY_RSA_PRIVATE_KEY=
|
||||
SYLY_MAIL_HOST=
|
||||
SYLY_MAIL_SENDER=
|
||||
SYLY_MAIL_USER=
|
||||
SYLY_MAIL_PASSWORD=
|
||||
SYLY_SMS_ACCOUNT=
|
||||
SYLY_SMS_PASSWORD=
|
||||
# Optional manual diagnostic utilities only:
|
||||
SYLY_LDAP_TEST_PASSWORD=
|
||||
SYLY_TEST_DB_PASSWORD=
|
||||
SYLY_TEST_API_KEY=
|
||||
@@ -0,0 +1,38 @@
|
||||
# 入库验证记录
|
||||
|
||||
日期:2026-10-29,北京时间。
|
||||
|
||||
## 源码来源与此前 UAT
|
||||
|
||||
交接包外层 `pom.xml`、`src`、`jar` 共 5,302 个文件,入库前逐文件 SHA-256 与原构建清单一致。清单见 `evidence/original-source-manifest.json`。未采用内层重复工程或历史 target。
|
||||
|
||||
此前 UAT 使用 Corretto 8.512.09.1、Maven 3.9.11,在 16:46 完成主工程构建;949 个应用 class、145 个 JAR。原 WAR SHA-256 为 `7c1e4236d32f2d2106df738d2523f08588d73eab7f70089382e3ae5e7c827e76`。原始验证摘要保存在 `evidence/uat-build-20261029.json`。
|
||||
|
||||
当天后续 UAT 部署记录显示:登录、用户查询、酒店基本信息直接页面可用,12 项 HTTP 检查通过。浏览器记录见 `evidence/uat-browser-20261029.json`,HTTP 记录见 `evidence/uat-http-20261029.json`。旧脚本报错和酒店菜单内嵌页面切换问题尚未解决;业务填报、审核、全量报表、附件和真实外部接口不属于已完成验收。
|
||||
|
||||
## 入库调整
|
||||
|
||||
- 应用此前验证的三处编译兼容修正,保留业务算法。
|
||||
- 配置文件去除数据库和邮件凭据;默认外部接口设置为本地禁用地址。
|
||||
- RSA 私钥、AES 密钥和邮件/短信等硬编码凭据迁至部署环境或私有 properties 文件;移除源码中的示例生产密文和注释内凭据,历史测试 API 密钥改为私有配置。没有轮换现有密钥。
|
||||
- 按已验证 UAT 的做法移除含硬编码口令的 Druid 监控 Servlet。
|
||||
- 排除备份配置、Maven 缓存元数据、重复依赖 ZIP、学习资料 APK/DOC 及历史 iOS 安装包;保留应用所需的原始 JAR、前端资源和报表模板。
|
||||
- 添加独立构建入口、配置模板与离线验证工具。`ops/` 保存原始 UAT 脚本,不代表本次执行过部署。
|
||||
|
||||
## 本地验证
|
||||
|
||||
入库期间 UAT 网络不可达。本轮未连接数据库、未启动应用、未替换现有 UAT 服务。
|
||||
|
||||
使用本机 Zulu JDK 1.8.0_412(macOS ARM64)和 Maven 3.9.11,执行 `bash scripts/build.sh`:`clean package` 成功。Maven 官方发行包已核验 SHA-512;6 个旧组件均从交接包原 JAR 注册到项目专用仓库。依赖缓存与构建产物不入库。
|
||||
|
||||
`scripts/verify-artifact.py` 检查 WAR CRC、登录/认证/酒店月报/密钥读取关键条目、Java 字节码版本、打包配置和 Druid 删除情况。结果为 950 个应用 class(新增 `RuntimeSecrets`)、major 52、145 个 JAR。产物摘要见 `evidence/local-build-20261029.json`。
|
||||
|
||||
`scripts/verify-secrets.sh` 使用原交接密钥在仅内存的进程环境中执行离线检查,不读取业务数据、不输出密钥:必需密钥缺失时报错、可选项为空、私有文件读取与环境变量优先级、AES 带前缀及无前缀密文兼容、空值及明文兼容、RSA 公私钥配对和独立解密均通过。仅加解密自检不构成登录或业务运行验收。
|
||||
|
||||
原 Maven 测试编译与执行显式跳过;没有声称历史集成测试通过。旧编译器参数和未固定插件版本仍有警告。本地验证不能替代 Linux/UAT 对当前入库版本的运行回归。
|
||||
|
||||
## 提交检查
|
||||
|
||||
Gitleaks 8.24.2 对暂存区完整扫描通过(约 50.6 MB 文本)。已核对并限定放行三类误报:源码文件 SHA-256、JSEncrypt 构造 PEM 文本的序列化代码、与登录表单相同的公开 userKey 字段;规则见 `.gitleaks.toml`。真实测试 API 密钥已移出。数据库密码、RSA 私钥和 AES 密钥的原值检索未发现残留。文件范围检查确认未暂存备份、运行目录、私钥文件、WAR 或移动端安装包。
|
||||
|
||||
`evidence/source-import-20261029.json` 记录相对原始清单的文件变化与排除项。现有原始交接目录保持不变。
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"war_sha256": "233f5aa8ee8830af680542cd6afa6a289e210a05e68882abdac55b413d763a2c",
|
||||
"war_bytes": 111225398,
|
||||
"zip_crc_check": "passed",
|
||||
"compiled_class_files": 950,
|
||||
"class_major_versions": {
|
||||
"52": 950
|
||||
},
|
||||
"bundled_jars": 145,
|
||||
"required_entries_present": [
|
||||
"WEB-INF/web.xml",
|
||||
"WEB-INF/classes/com/zzc/web/system/controller/core/LoginController.class",
|
||||
"WEB-INF/classes/com/zzc/core/interceptors/AuthInterceptor.class",
|
||||
"WEB-INF/classes/com/zzc/web/htoal/controller/HotelMonthlyController.class",
|
||||
"WEB-INF/classes/com/zzc/core/util/RuntimeSecrets.class"
|
||||
],
|
||||
"packaged_credential_checks": "passed",
|
||||
"build_success": true,
|
||||
"built_at": "2026-10-29T22:21:09+08:00",
|
||||
"elapsed": "15.632 s",
|
||||
"java": "Zulu 1.8.0_412, macOS ARM64",
|
||||
"maven": "3.9.11",
|
||||
"legacy_maven_tests_skipped": true,
|
||||
"offline_crypto_and_configuration_checks": "passed",
|
||||
"uat_retested": false
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,158 @@
|
||||
{
|
||||
"original_file_count": 5302,
|
||||
"modified_files": [
|
||||
{
|
||||
"path": "pom.xml",
|
||||
"original_sha256": "c543015b9ff6c46aaf5c3333b0e490b13522ff8044fb12183b66510480a59d5c",
|
||||
"repository_sha256": "c863b482e41709817c6991eb6279a8504158b14508c0d1cab542b2387b5f64dd"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/core/util/DynamicDBUtil.java",
|
||||
"original_sha256": "73555c1b4aae3797f10cdd82ce743a6cccec53c84d16d36efe9b4d3d5c45c0ef",
|
||||
"repository_sha256": "41222a2121a86a958eb07975a79498582f1628f089c1282e047409870b46e1a0"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/core/util/EncryptionUtil.java",
|
||||
"original_sha256": "1e47419bb10dae56279c50b6bcaaaf36c783ca6fa2da25169f0afe0bac237f25",
|
||||
"repository_sha256": "2d3edebed0f9ce1a9e6acad9e86bf36dcbcb09bad2e2f90a5ecc92c4bae6c2c5"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/core/util/LdapUtil.java",
|
||||
"original_sha256": "614ac8e29ce9bf404398eb3c01b8b2e8a119ea24fa80f58e54c0f8794f7819d2",
|
||||
"repository_sha256": "d8bebba9f289738999458b041af9b09e4b6222bb15a5e6683e6d70c1dd3d3178"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/core/util/RsaUtils.java",
|
||||
"original_sha256": "68587c598fd8a0c39b99ec872d164ab7f4c6330dbac1009ec472af7f16bab513",
|
||||
"repository_sha256": "853e50db1dc1eb2e408237a5636a1eb7dbeaebe6a6378dd7571e314921478e15"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/core/util/SendMailUtil.java",
|
||||
"original_sha256": "4c74c91255cdbe31ccd81ba5093596ac6fa4ba0a5ce0665460e9d68974db5b94",
|
||||
"repository_sha256": "82927a958302c624dcb3cf8939d44f998f4750151e6706ea6b5fe287a8f02748"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/htoal/controller/HotelQuarterStatisticController.java",
|
||||
"original_sha256": "e5b575b67d3657bf768aa61103e6eb78b7283072bdd03ec2d751b4cdf7d8e91d",
|
||||
"repository_sha256": "bee7dcc280c4eb58ead7652723d9cfc6be837bca04f259bdd102994b8a76c350"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/out/OutController.java",
|
||||
"original_sha256": "4b1c134af74c3538afa9ae91dc2095067b297f5a9b29621b2ec99d06915aa9c8",
|
||||
"repository_sha256": "b9129884777b046a09dda24029cdddc61132a0b68bef5b7b7e2e46edc3ceb1d4"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/sms/util/Constants.java",
|
||||
"original_sha256": "fb9e04b8d9b126bd06444ef15f98ffaf5b7f2f6ba8dde3b734a55de64048d005",
|
||||
"repository_sha256": "c2564ae9f926d4a61845147a336d1ac16523c394f97ec0cb9668ab5719d087a5"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/sms/util/webservice/XmlConstant.java",
|
||||
"original_sha256": "bd65b814b4425b302fc2ddfe06915401fde51d62a9e3914429f5ea05524a7392",
|
||||
"repository_sha256": "93fa9aaae116073d88f5bc03780db0483b51b8e444831f489bee8342cf0db00f"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/travel/controller/InlandStatisticPageController.java",
|
||||
"original_sha256": "ea8edbe597dd592a9c23f13dd381bb7ea98631e76812ad92b232bbd96db9c6bc",
|
||||
"repository_sha256": "4446a2331961e81a50582c895ed9459167c9cfb306b5dd908b6aaccc098b732f"
|
||||
},
|
||||
{
|
||||
"path": "src/main/resources/dbconfig.properties",
|
||||
"original_sha256": "ae964ae0c76efa1015700d596e377c523f1259ff97a119daea28b799051f690f",
|
||||
"repository_sha256": "9bfda80e7760cb2841e24832ceb7406ff564eebc2e1d4d51ee19e359063809de"
|
||||
},
|
||||
{
|
||||
"path": "src/main/resources/sysConfig.properties",
|
||||
"original_sha256": "b1c7d6d231207adcbabdbdfb06063a3723e507913636b30826719d971ef5cc9f",
|
||||
"repository_sha256": "a5ec3d348e02af2942e7a5ff35ef80377c4851dbcd48d8ca71df78c17c97edf2"
|
||||
},
|
||||
{
|
||||
"path": "src/main/resources/zzc/zzc_database.properties",
|
||||
"original_sha256": "061517eff0882a48809d2017137b8ebf5b4dcda31221dd2aeca1f49d08639099",
|
||||
"repository_sha256": "4b6bfb150d060c1a4e3f1af17fe9aabd1f1e956a97e0fe85ff73f7fdc348ecd5"
|
||||
},
|
||||
{
|
||||
"path": "src/main/webapp/WEB-INF/web.xml",
|
||||
"original_sha256": "6b730d22f0d440d68c7d55327b0bfcc97390aabe5d28e46f953205d17d2bbf84",
|
||||
"repository_sha256": "7f1a87a61c27cbd6bddcf085facb39753f4020036da898517885ffb963e79405"
|
||||
},
|
||||
{
|
||||
"path": "src/test/java/com/zzc/test/Testurl.java",
|
||||
"original_sha256": "92c69bb090001569fec40d9de2f725cfe3b0ef4adcc47712105efd8eca91a127",
|
||||
"repository_sha256": "4aeb7680c4635debe150f8ead864c3ebb079dc1430491817096e4a72f22bcb89"
|
||||
}
|
||||
],
|
||||
"excluded_files": [
|
||||
"jar/ckfinder.zip",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/CKFinder-updateByAlexander-2.4.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/CKFinder-updateByAlexander-2.4.jar.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/CKFinder-updateByAlexander-2.4.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/CKFinder-updateByAlexander-2.4.pom.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/CKFinder-updateByAlexander-2.4.pom.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/CKFinder-updateByAlexander-2.4.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinder-updateByAlexander/2.4/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/ckfinderplugin-fileeditor-2.3.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/ckfinderplugin-fileeditor-2.3.jar.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/ckfinderplugin-fileeditor-2.3.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/ckfinderplugin-fileeditor-2.3.pom.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/ckfinderplugin-fileeditor-2.3.pom.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.3/ckfinderplugin-fileeditor-2.3.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.4/CKFinderPlugin-FileEditor-2.4.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.4/CKFinderPlugin-FileEditor-2.4.jar.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.4/CKFinderPlugin-FileEditor-2.4.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.4/CKFinderPlugin-FileEditor-2.4.pom.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.4/CKFinderPlugin-FileEditor-2.4.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-FileEditor/2.4/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/ckfinderplugin-imageresize-2.3.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/ckfinderplugin-imageresize-2.3.jar.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/ckfinderplugin-imageresize-2.3.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/ckfinderplugin-imageresize-2.3.pom.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/ckfinderplugin-imageresize-2.3.pom.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.3/ckfinderplugin-imageresize-2.3.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.4/CKFinderPlugin-ImageResize-2.4.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.4/CKFinderPlugin-ImageResize-2.4.jar.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.4/CKFinderPlugin-ImageResize-2.4.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.4/CKFinderPlugin-ImageResize-2.4.pom.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.4/CKFinderPlugin-ImageResize-2.4.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-ImageResize/2.4/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-Watermark/2.4/CKFinderPlugin-Watermark-2.4.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-Watermark/2.4/CKFinderPlugin-Watermark-2.4.jar.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-Watermark/2.4/CKFinderPlugin-Watermark-2.4.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-Watermark/2.4/CKFinderPlugin-Watermark-2.4.pom.md5",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-Watermark/2.4/CKFinderPlugin-Watermark-2.4.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/CKFinderPlugin-Watermark/2.4/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/apache-ant-zip-2.3.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/apache-ant-zip-2.3.jar.md5",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/apache-ant-zip-2.3.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/apache-ant-zip-2.3.pom.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/apache-ant-zip-2.3.pom.md5",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.3/apache-ant-zip-2.3.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.4/apache-ant-zip-2.4.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/apache-ant-zip/2.4/apache-ant-zip-2.4.pom.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/_remote.repositories",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/ckfinder-2.3.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/ckfinder-2.3.jar.md5",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/ckfinder-2.3.jar.sha1",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/ckfinder-2.3.pom.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/ckfinder-2.3.pom.md5",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.3/ckfinder-2.3.pom.sha1",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.4/ckfinder-2.4.jar.lastUpdated",
|
||||
"jar/ckfinder/ckfinder/ckfinder/2.4/ckfinder-2.4.pom.lastUpdated",
|
||||
"jar/ojdbc14.zip",
|
||||
"jar/ojdbc14/ojdbc14/10.2.0.4.0/_remote.repositories",
|
||||
"jar/ojdbc14/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.jar.lastUpdated",
|
||||
"jar/ojdbc14/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.pom.md5",
|
||||
"jar/ojdbc14/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.pom.sha1",
|
||||
"src/main/java/com/zzc/app/study/study.doc",
|
||||
"src/main/java/com/zzc/app/study/涓変簹鏃呮父.apk",
|
||||
"src/main/resources/zzc/zzc_database.properties.bak",
|
||||
"src/main/webapp/css/login/images/sanya_logo.png.bak",
|
||||
"src/main/webapp/plug-in/login/js/login.js.bak",
|
||||
"src/main/webapp/webpage/appservice/download/SanYaTourism.ipa",
|
||||
"src/main/webapp/webpage/common/upload/404.jsp.bak",
|
||||
"src/main/webapp/webpage/main/ace_main.jsp.bak"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"url": "https://192.168.68.223:8445/syly/loginController.do?login",
|
||||
"directHttpsLogin": true,
|
||||
"account": "uat_admin",
|
||||
"userListSearchPassed": true,
|
||||
"hotelDirectPagePassed": true,
|
||||
"hotelListTotal": 395,
|
||||
"menuFrameRefreshNeedsReview": true,
|
||||
"legacyJavascriptErrors": [
|
||||
"curdtools_zh-cn.js frameElement.api/opener",
|
||||
"easyuiextend.js defaults/progress"
|
||||
],
|
||||
"businessMutationsPerformed": false,
|
||||
"sshTunnelClosed": true
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"host": "192.168.68.223",
|
||||
"run": "/home/ubuntu/builds/syly2/20261029-01",
|
||||
"phase": "compatibility-build",
|
||||
"build_success": true,
|
||||
"artifact": "/home/ubuntu/builds/syly2/20261029-01/artifacts/syly.war",
|
||||
"artifact_bytes": 113959750,
|
||||
"artifact_sha256": "7c1e4236d32f2d2106df738d2523f08588d73eab7f70089382e3ae5e7c827e76",
|
||||
"zip_crc_check": "passed",
|
||||
"required_entries_present": [
|
||||
"WEB-INF/web.xml",
|
||||
"WEB-INF/classes/com/zzc/web/system/controller/core/LoginController.class",
|
||||
"WEB-INF/classes/com/zzc/core/interceptors/AuthInterceptor.class",
|
||||
"WEB-INF/classes/com/zzc/web/htoal/controller/HotelMonthlyController.class"
|
||||
],
|
||||
"compiled_class_files": 949,
|
||||
"class_major_versions": {
|
||||
"52": 949
|
||||
},
|
||||
"bundled_jars": 145,
|
||||
"main_java_sources": 910,
|
||||
"extra_java_sources_outside_maven_root": 21,
|
||||
"source_manifest_files": 5302,
|
||||
"changed_source_files": [
|
||||
{
|
||||
"path": "pom.xml",
|
||||
"original_sha256": "c543015b9ff6c46aaf5c3333b0e490b13522ff8044fb12183b66510480a59d5c",
|
||||
"build_sha256": "c863b482e41709817c6991eb6279a8504158b14508c0d1cab542b2387b5f64dd"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/htoal/controller/HotelQuarterStatisticController.java",
|
||||
"original_sha256": "e5b575b67d3657bf768aa61103e6eb78b7283072bdd03ec2d751b4cdf7d8e91d",
|
||||
"build_sha256": "bee7dcc280c4eb58ead7652723d9cfc6be837bca04f259bdd102994b8a76c350"
|
||||
},
|
||||
{
|
||||
"path": "src/main/java/com/zzc/web/travel/controller/InlandStatisticPageController.java",
|
||||
"original_sha256": "ea8edbe597dd592a9c23f13dd381bb7ea98631e76812ad92b232bbd96db9c6bc",
|
||||
"build_sha256": "4446a2331961e81a50582c895ed9459167c9cfb306b5dd908b6aaccc098b732f"
|
||||
}
|
||||
],
|
||||
"tests_skipped": true,
|
||||
"containers_before": 12,
|
||||
"containers_after": 12,
|
||||
"existing_containers_unchanged": true,
|
||||
"built_at": "2026-10-29T08:46:05Z",
|
||||
"elapsed": "02:11 min",
|
||||
"java_version": "openjdk version \"1.8.0_512\"\nOpenJDK Runtime Environment Corretto-8.512.09.1 (build 1.8.0_512-b09)\nOpenJDK 64-Bit Server VM Corretto-8.512.09.1 (build 25.512-b09, mixed mode)"
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
[
|
||||
{
|
||||
"check": "login-page",
|
||||
"status": 200,
|
||||
"expected_status": 200,
|
||||
"passed": true,
|
||||
"bytes": 8395
|
||||
},
|
||||
{
|
||||
"check": "login-controller",
|
||||
"status": 200,
|
||||
"expected_status": 200,
|
||||
"passed": true,
|
||||
"bytes": 8395
|
||||
},
|
||||
{
|
||||
"check": "captcha",
|
||||
"status": 200,
|
||||
"expected_status": 200,
|
||||
"passed": true,
|
||||
"bytes": 2192
|
||||
},
|
||||
{
|
||||
"check": "anonymous-business",
|
||||
"status": 401,
|
||||
"expected_status": 401,
|
||||
"passed": true,
|
||||
"bytes": 727
|
||||
},
|
||||
{
|
||||
"check": "repair-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "password-reset-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "mobile-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "sync-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "druid-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "upload-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "rest-disabled",
|
||||
"status": 403,
|
||||
"expected_status": 403,
|
||||
"passed": true,
|
||||
"bytes": 665
|
||||
},
|
||||
{
|
||||
"check": "backup-account-login-disabled",
|
||||
"status": 200,
|
||||
"expected_status": 200,
|
||||
"passed": true,
|
||||
"bytes": 69
|
||||
}
|
||||
]
|
||||
BIN
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinder-updateByAlexander</artifactId>
|
||||
<version>2.4</version>
|
||||
</project>
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>ckfinderplugin-fileeditor</artifactId>
|
||||
<version>2.3</version>
|
||||
</project>
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinderPlugin-FileEditor</artifactId>
|
||||
<version>2.4</version>
|
||||
<description>POM was created by Sonatype Nexus</description>
|
||||
</project>
|
||||
BIN
Binary file not shown.
+8
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>ckfinderplugin-imageresize</artifactId>
|
||||
<version>2.3</version>
|
||||
</project>
|
||||
BIN
Binary file not shown.
+9
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinderPlugin-ImageResize</artifactId>
|
||||
<version>2.4</version>
|
||||
<description>POM was created by Sonatype Nexus</description>
|
||||
</project>
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinderPlugin-Watermark</artifactId>
|
||||
<version>2.4</version>
|
||||
<description>POM was created by Sonatype Nexus</description>
|
||||
</project>
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>apache-ant-zip</artifactId>
|
||||
<version>2.3</version>
|
||||
</project>
|
||||
Binary file not shown.
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>ckfinder</artifactId>
|
||||
<version>2.3</version>
|
||||
</project>
|
||||
Binary file not shown.
@@ -0,0 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.oracle</groupId>
|
||||
<artifactId>ojdbc14</artifactId>
|
||||
<version>10.2.0.4.0</version>
|
||||
<description>POM was created by Sonatype Nexus</description>
|
||||
</project>
|
||||
@@ -0,0 +1,15 @@
|
||||
|
||||
|
||||
mvn install:install-file -DgroupId='com.oracle' -DartifactId=ojdbc14 -Dversion='10.2.0.4.0' -Dpackaging=jar -Dfile=D:\work-space\work-space\syly2\syly\syly2\jar\ojdbc14\ojdbc14\10.2.0.4.0\ojdbc14-10.2.0.4.0.jar
|
||||
|
||||
mvn install:install-file -DgroupId='com.ckfinder' -DartifactId=CKFinder-updateByAlexander -Dversion='2.4' -Dpackaging=jar -Dfile=D:\work-space\work-space\syly2\syly\syly2\jar\ckfinder\ckfinder\CKFinder-updateByAlexander\2.4\CKFinder-updateByAlexander-2.4.jar
|
||||
|
||||
|
||||
mvn install:install-file -DgroupId='com.ckfinder' -DartifactId=CKFinderPlugin-FileEditor -Dversion='2.4' -Dpackaging=jar -Dfile=D:\work-space\work-space\syly2\syly\syly2\jar\ckfinder\ckfinder\CKFinderPlugin-FileEditor\2.4\CKFinderPlugin-FileEditor-2.4.jar
|
||||
|
||||
|
||||
mvn install:install-file -DgroupId='com.ckfinder' -DartifactId=CKFinderPlugin-ImageResize -Dversion='2.4' -Dpackaging=jar -Dfile=D:\work-space\work-space\syly2\syly\syly2\jar\ckfinder\ckfinder\CKFinderPlugin-ImageResize\2.4\CKFinderPlugin-ImageResize-2.4.jar
|
||||
|
||||
|
||||
|
||||
mvn install:install-file -DgroupId='com.ckfinder' -DartifactId=CKFinderPlugin-Watermark -Dversion='2.4' -Dpackaging=jar -Dfile=D:\work-space\work-space\syly2\syly\syly2\jar\ckfinder\ckfinder\CKFinderPlugin-Watermark\2.4\CKFinderPlugin-Watermark-2.4.jar
|
||||
@@ -0,0 +1,53 @@
|
||||
> 历史记录:以下说明对应 2026-10-29 原始 UAT 构建及部署,当前仓库的构建入口和密钥配置请看根目录 README。
|
||||
|
||||
# syly2 UAT 编译工具
|
||||
|
||||
目标主机:`ubuntu@192.168.68.223`。这些工具用于隔离的源码编译,不包含数据库初始化或应用发布步骤。
|
||||
|
||||
## 本次目录
|
||||
|
||||
- 工具链:`/home/ubuntu/.local/opt/syly2-build`
|
||||
- Maven 专用仓库:`/home/ubuntu/.local/share/syly2-build/m2`
|
||||
- 构建记录:`/home/ubuntu/builds/syly2/20261029-01`
|
||||
- 编译副本:上述构建目录下的 `source`
|
||||
- 构建日志:上述构建目录下的 `logs`
|
||||
- 本地传输包、原始文件哈希清单及回收证据:项目 `.local/uat-build/20261029-01`
|
||||
|
||||
## 工具职责
|
||||
|
||||
1. `prepare-toolchain.py`:安装固定版本 Corretto 8.512.09.1 与 Maven 3.9.11,验证官方 SHA-256/SHA-512 校验值;只写入当前用户的专用目录,不修改系统 Java 或 shell 配置。
|
||||
2. `install-private-libs.py RUN_DIRECTORY`:将交接包中的 6 个旧 JAR 注册到专用 Maven 仓库,记录原文件哈希。JODConverter 使用原项目声明的坐标和交接包中的 JAR,其原嵌入坐标不同,未据此升级或替换组件。
|
||||
3. `apply-compatibility.py RUN_DIRECTORY`:校验原始文件哈希,备份并修改编译副本中的三个文件:POM 的 Windows bootclasspath 分号改为 `${path.separator}`,两个统计 Controller 各删除一条未使用的 JDK 内部类 import。保留原换行符,并输出完整 `compatibility.patch`。`pom-linux.patch` 单独展示第一项差异。
|
||||
4. `run-build.sh RUN_DIRECTORY PHASE`:在专用 JDK/仓库下执行 `clean package`,限制 JVM 内存、降低 CPU 调度优先级并记录退出码;显式跳过测试编译及执行。
|
||||
5. `verify-build.py RUN_DIRECTORY PHASE`:校验构建退出码、WAR CRC、关键条目和 Java 字节码版本,核对源码差异,保存产物与哈希,并比较构建前后的共享 UAT 容器状态。需要构建目录中已有 `containers-before.json` 基线记录。
|
||||
|
||||
本次只打包外层工程的 `pom.xml`、`src`、`jar`,不带历史 `target` 或内层重复工程。传输包与展开后的 5,302 个文件均核验了 SHA-256。
|
||||
|
||||
## 重新编译当前 UAT 副本
|
||||
|
||||
```sh
|
||||
ssh ubuntu@192.168.68.223 'bash /home/ubuntu/builds/syly2/20261029-01/scripts/run-build.sh /home/ubuntu/builds/syly2/20261029-01 repeat'
|
||||
```
|
||||
|
||||
`repeat` 对应日志文件名;需要保留每次日志时请使用不同的阶段名。
|
||||
|
||||
仅使用编译工具链时:
|
||||
|
||||
```sh
|
||||
source /home/ubuntu/.local/opt/syly2-build/env.sh
|
||||
java -version
|
||||
mvn -version
|
||||
```
|
||||
|
||||
## 在新的构建目录复现
|
||||
|
||||
先建立当前用户所有、权限为 700 的独立目录,创建 `source`、`logs`、`artifacts`、`scripts` 子目录,复制并核验源码包、原始 `source-manifest.json` 与这些工具。然后执行:
|
||||
|
||||
```sh
|
||||
python3 scripts/prepare-toolchain.py
|
||||
python3 scripts/install-private-libs.py /absolute/path/to/build-run
|
||||
python3 scripts/apply-compatibility.py /absolute/path/to/build-run
|
||||
bash scripts/run-build.sh /absolute/path/to/build-run linux-build
|
||||
```
|
||||
|
||||
源码包包含原有配置,构建目录、传输包和产物均应按受限资料管理。编译通过不代表应用启动、数据库恢复、JSP 运行或省级接口联调通过。
|
||||
@@ -0,0 +1,54 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Apply only the three verified compilation fixes to an isolated source copy."""
|
||||
import difflib
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import re
|
||||
import sys
|
||||
|
||||
os.umask(0o077)
|
||||
run = Path(sys.argv[1]).resolve()
|
||||
source = run / 'source'
|
||||
manifest = json.loads((run / 'source-manifest.json').read_text())
|
||||
changes = {
|
||||
'pom.xml': (
|
||||
b'${java.home}/lib/rt.jar;${java.home}/lib/jce.jar',
|
||||
b'${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar',
|
||||
),
|
||||
'src/main/java/com/zzc/web/htoal/controller/HotelQuarterStatisticController.java': (
|
||||
b'import com.sun.org.apache.regexp.internal.recompile;\r\n', b'',
|
||||
),
|
||||
'src/main/java/com/zzc/web/travel/controller/InlandStatisticPageController.java': (
|
||||
b'import com.sun.org.apache.regexp.internal.recompile;\r\n', b'',
|
||||
),
|
||||
}
|
||||
patches = []
|
||||
for relative, (before, after) in changes.items():
|
||||
path = source / relative
|
||||
data = path.read_bytes()
|
||||
backup = run / 'artifacts/original-build-files' / relative
|
||||
if hashlib.sha256(data).hexdigest() == manifest[relative]:
|
||||
assert data.count(before) == 1, relative
|
||||
if relative.endswith('.java'):
|
||||
assert len(re.findall(rb'\brecompile\b', data)) == 1, relative
|
||||
backup.parent.mkdir(parents=True, exist_ok=True)
|
||||
backup.write_bytes(data)
|
||||
path.write_bytes(data.replace(before, after, 1))
|
||||
elif relative == 'pom.xml' and (run / 'artifacts/pom-original.xml').exists():
|
||||
original = (run / 'artifacts/pom-original.xml').read_bytes()
|
||||
assert hashlib.sha256(original).hexdigest() == manifest[relative]
|
||||
assert data == original.replace(before, after, 1)
|
||||
backup.parent.mkdir(parents=True, exist_ok=True)
|
||||
backup.write_bytes(original)
|
||||
else:
|
||||
assert backup.exists(), 'Unexpected source change: ' + relative
|
||||
assert hashlib.sha256(backup.read_bytes()).hexdigest() == manifest[relative]
|
||||
assert data == backup.read_bytes().replace(before, after, 1)
|
||||
patches.extend(difflib.unified_diff(
|
||||
backup.read_text().splitlines(keepends=True), path.read_text().splitlines(keepends=True),
|
||||
fromfile='a/' + relative, tofile='b/' + relative,
|
||||
))
|
||||
print('Compatibility fix verified:', relative)
|
||||
(run / 'artifacts/compatibility.patch').write_text(''.join(patches))
|
||||
@@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Register the six supplied legacy JARs in a dedicated Maven repository."""
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import sys
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
os.umask(0o077)
|
||||
run = Path(sys.argv[1]).resolve()
|
||||
source = run / 'source'
|
||||
repo = Path.home() / '.local/share/syly2-build/m2'
|
||||
base = Path.home() / '.local/opt/syly2-build'
|
||||
env = dict(os.environ, JAVA_HOME=str(base / 'corretto-8.512.09.1'))
|
||||
env['PATH'] = env['JAVA_HOME'] + '/bin:' + env['PATH']
|
||||
mvn = base / 'apache-maven-3.9.11/bin/mvn'
|
||||
artifacts = [
|
||||
('com.oracle', 'ojdbc14', '10.2.0.4.0', 'jar/ojdbc14/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.jar'),
|
||||
*[('com.ckfinder', name, '2.4', f'jar/ckfinder/ckfinder/{name}/2.4/{name}-2.4.jar') for name in [
|
||||
'CKFinder-updateByAlexander', 'CKFinderPlugin-FileEditor',
|
||||
'CKFinderPlugin-ImageResize', 'CKFinderPlugin-Watermark',
|
||||
]],
|
||||
('com.artofsolving', 'jodconverter', '3.0-beta-4', 'src/main/webapp/WEB-INF/lib/jodconverter-3.0-beta-4.jar'),
|
||||
]
|
||||
evidence = []
|
||||
poms = run / 'artifacts/local-poms'
|
||||
poms.mkdir(exist_ok=True)
|
||||
for group, artifact, version, relative in artifacts:
|
||||
jar = source / relative
|
||||
original_pom = jar.with_suffix('.pom')
|
||||
if original_pom.is_file():
|
||||
pom = original_pom
|
||||
else:
|
||||
project = ET.Element('project', xmlns='http://maven.apache.org/POM/4.0.0')
|
||||
for tag, text in [('modelVersion', '4.0.0'), ('groupId', group), ('artifactId', artifact), ('version', version), ('packaging', 'jar')]:
|
||||
ET.SubElement(project, tag).text = text
|
||||
pom = poms / f'{artifact}-{version}.pom'
|
||||
ET.ElementTree(project).write(pom, encoding='utf-8', xml_declaration=True)
|
||||
log = run / 'logs' / f'install-{artifact}.log'
|
||||
with log.open('w') as output:
|
||||
result = subprocess.run([
|
||||
str(mvn), '-B', '-ntp', f'-Dmaven.repo.local={repo}',
|
||||
'org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file',
|
||||
f'-Dfile={jar}', f'-DpomFile={pom}',
|
||||
f'-DgroupId={group}', f'-DartifactId={artifact}', f'-Dversion={version}', '-Dpackaging=jar',
|
||||
], cwd=run, env=env, stdout=output, stderr=subprocess.STDOUT, timeout=300)
|
||||
if result.returncode:
|
||||
raise RuntimeError(f'Installation failed: {artifact}; see {log}')
|
||||
evidence.append({'coordinates': f'{group}:{artifact}:{version}', 'source': relative, 'sha256': hashlib.sha256(jar.read_bytes()).hexdigest()})
|
||||
print('Installed', evidence[-1]['coordinates'], flush=True)
|
||||
(run / 'artifacts/private-libs.json').write_text(json.dumps(evidence, indent=2) + '\n')
|
||||
@@ -0,0 +1,11 @@
|
||||
--- a/pom.xml
|
||||
+++ b/pom.xml
|
||||
@@ -812,7 +812,7 @@
|
||||
</compilerArgs>
|
||||
<compilerArguments>
|
||||
<verbose/>
|
||||
- <bootclasspath>${java.home}/lib/rt.jar;${java.home}/lib/jce.jar</bootclasspath>
|
||||
+ <bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</bootclasspath>
|
||||
</compilerArguments>
|
||||
<fork>true</fork>
|
||||
</configuration>
|
||||
@@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Install the pinned syly2 build toolchain in the current UAT user's home."""
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import subprocess
|
||||
import tarfile
|
||||
import urllib.request
|
||||
|
||||
os.umask(0o077)
|
||||
base = Path.home() / '.local/opt/syly2-build'
|
||||
base.mkdir(parents=True, exist_ok=True)
|
||||
downloads = base / 'downloads'
|
||||
downloads.mkdir(exist_ok=True)
|
||||
packages = [
|
||||
{
|
||||
'name': 'corretto-8.512.09.1',
|
||||
'url': 'https://corretto.aws/downloads/resources/8.512.09.1/amazon-corretto-8.512.09.1-linux-x64.tar.gz',
|
||||
'algorithm': 'sha256',
|
||||
'checksum': '2f2df938886e61c80010ed5af0ea6504ca685280a3b807c5c59ed3ca4fb95be4',
|
||||
'checksum_source': 'https://corretto.aws/downloads/latest_sha256/amazon-corretto-8-x64-linux-jdk.tar.gz',
|
||||
'executable': 'bin/java',
|
||||
},
|
||||
{
|
||||
'name': 'apache-maven-3.9.11',
|
||||
'url': 'https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.tar.gz',
|
||||
'algorithm': 'sha512',
|
||||
'checksum': 'bcfe4fe305c962ace56ac7b5fc7a08b87d5abd8b7e89027ab251069faebee516b0ded8961445d6d91ec1985dfe30f8153268843c89aa392733d1a3ec956c9978',
|
||||
'checksum_source': 'https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.11/apache-maven-3.9.11-bin.tar.gz.sha512',
|
||||
'executable': 'bin/mvn',
|
||||
},
|
||||
]
|
||||
for package in packages:
|
||||
archive = downloads / (package['name'] + '.tar.gz')
|
||||
if not archive.exists():
|
||||
print('Downloading', package['name'], flush=True)
|
||||
partial = archive.with_suffix('.part')
|
||||
with urllib.request.urlopen(package['url'], timeout=90) as response, partial.open('wb') as output:
|
||||
while chunk := response.read(1024 * 1024):
|
||||
output.write(chunk)
|
||||
partial.rename(archive)
|
||||
digest = hashlib.new(package['algorithm'], archive.read_bytes()).hexdigest()
|
||||
if digest != package['checksum']:
|
||||
raise RuntimeError('Checksum mismatch: ' + package['name'])
|
||||
dest = base / package['name']
|
||||
if not dest.exists():
|
||||
staging = base / (package['name'] + '.extract')
|
||||
staging.mkdir(exist_ok=False)
|
||||
with tarfile.open(archive) as tar:
|
||||
tar.extractall(staging, filter='data')
|
||||
children = list(staging.iterdir())
|
||||
if len(children) != 1 or not children[0].is_dir():
|
||||
raise RuntimeError('Unexpected archive layout')
|
||||
children[0].rename(dest)
|
||||
staging.rmdir()
|
||||
if not (dest / package['executable']).is_file():
|
||||
raise RuntimeError('Incomplete installation: ' + str(dest))
|
||||
print('Verified and installed', dest, flush=True)
|
||||
|
||||
jdk = base / packages[0]['name']
|
||||
maven = base / packages[1]['name']
|
||||
env_text = f'export JAVA_HOME="{jdk}"\nexport PATH="{jdk}/bin:{maven}/bin:$PATH"\nexport MAVEN_OPTS="-Xmx1536m -Djava.awt.headless=true"\n'
|
||||
(base / 'env.sh').write_text(env_text)
|
||||
(base / 'manifest.json').write_text(json.dumps(packages, indent=2) + '\n')
|
||||
env = dict(os.environ, JAVA_HOME=str(jdk), PATH=f'{jdk}/bin:{maven}/bin:' + os.environ['PATH'])
|
||||
subprocess.run([str(jdk / 'bin/java'), '-version'], env=env, check=True)
|
||||
subprocess.run([str(maven / 'bin/mvn'), '-version'], env=env, check=True)
|
||||
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
umask 077
|
||||
run_dir="${1:?Usage: run-build.sh RUN_DIRECTORY PHASE}"
|
||||
phase="${2:?Missing build phase}"
|
||||
case "$phase" in
|
||||
*[!a-zA-Z0-9_-]*|'') printf 'Invalid phase\n' >&2; exit 2 ;;
|
||||
esac
|
||||
source "$HOME/.local/opt/syly2-build/env.sh"
|
||||
mkdir -p "$run_dir/logs" "$HOME/.local/share/syly2-build/m2"
|
||||
cd "$run_dir/source"
|
||||
set +e
|
||||
nice -n 10 timeout 1200 mvn --batch-mode --no-transfer-progress \
|
||||
-Dstyle.color=never \
|
||||
-Dmaven.repo.local="$HOME/.local/share/syly2-build/m2" \
|
||||
-Dmaven.test.skip=true -DskipTests=true \
|
||||
clean package > "$run_dir/logs/$phase.log" 2>&1
|
||||
result=$?
|
||||
set -e
|
||||
printf '%s\n' "$result" > "$run_dir/logs/$phase.exit-code"
|
||||
printf 'Build phase %s exited %s; log: %s\n' "$phase" "$result" "$run_dir/logs/$phase.log"
|
||||
exit "$result"
|
||||
@@ -0,0 +1,77 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Verify the WAR, record exact source changes, and compare shared UAT containers."""
|
||||
import collections
|
||||
import hashlib
|
||||
import json
|
||||
import os
|
||||
from pathlib import Path
|
||||
import shutil
|
||||
import struct
|
||||
import subprocess
|
||||
import sys
|
||||
import zipfile
|
||||
|
||||
os.umask(0o077)
|
||||
run = Path(sys.argv[1]).resolve()
|
||||
phase = sys.argv[2]
|
||||
assert (run / 'logs' / (phase + '.exit-code')).read_text().strip() == '0'
|
||||
log = (run / 'logs' / (phase + '.log')).read_text(errors='replace')
|
||||
assert 'BUILD SUCCESS' in log
|
||||
source = run / 'source'
|
||||
war = source / 'target/syly.war'
|
||||
required = [
|
||||
'WEB-INF/web.xml',
|
||||
'WEB-INF/classes/com/zzc/web/system/controller/core/LoginController.class',
|
||||
'WEB-INF/classes/com/zzc/core/interceptors/AuthInterceptor.class',
|
||||
'WEB-INF/classes/com/zzc/web/htoal/controller/HotelMonthlyController.class',
|
||||
]
|
||||
with zipfile.ZipFile(war) as archive:
|
||||
bad = archive.testzip()
|
||||
assert bad is None, bad
|
||||
names = archive.namelist()
|
||||
assert all(name in names for name in required)
|
||||
classes = [name for name in names if name.startswith('WEB-INF/classes/') and name.endswith('.class')]
|
||||
major_versions = collections.Counter(struct.unpack('>H', archive.read(name)[6:8])[0] for name in classes)
|
||||
assert set(major_versions) == {52}, major_versions
|
||||
libs = [name for name in names if name.startswith('WEB-INF/lib/') and name.endswith('.jar')]
|
||||
manifest = json.loads((run / 'source-manifest.json').read_text())
|
||||
changes = []
|
||||
for relative, expected in manifest.items():
|
||||
actual = hashlib.sha256((source / relative).read_bytes()).hexdigest()
|
||||
if expected != actual:
|
||||
changes.append({'path': relative, 'original_sha256': expected, 'build_sha256': actual})
|
||||
expected_changes = {
|
||||
'pom.xml',
|
||||
'src/main/java/com/zzc/web/htoal/controller/HotelQuarterStatisticController.java',
|
||||
'src/main/java/com/zzc/web/travel/controller/InlandStatisticPageController.java',
|
||||
}
|
||||
assert {change['path'] for change in changes} == expected_changes, changes
|
||||
ids = subprocess.check_output(['docker', 'ps', '-aq'], text=True).split()
|
||||
fmt = '{"id":{{json .Id}},"name":{{json .Name}},"startedAt":{{json .State.StartedAt}},"running":{{json .State.Running}},"restartCount":{{json .RestartCount}}}'
|
||||
after = [json.loads(subprocess.check_output(['docker', 'inspect', '--format', fmt, cid], text=True)) for cid in ids]
|
||||
before = json.loads((run / 'containers-before.json').read_text())
|
||||
key = lambda values: {value['id']: value for value in values}
|
||||
unchanged = key(before) == key(after)
|
||||
(run / 'containers-after.json').write_text(json.dumps(after, indent=2) + '\n')
|
||||
artifact = run / 'artifacts/syly.war'
|
||||
shutil.copyfile(war, artifact)
|
||||
artifact.chmod(0o600)
|
||||
evidence = {
|
||||
'host': '192.168.68.223', 'run': str(run), 'phase': phase, 'build_success': True,
|
||||
'artifact': str(artifact), 'artifact_bytes': artifact.stat().st_size,
|
||||
'artifact_sha256': hashlib.sha256(artifact.read_bytes()).hexdigest(),
|
||||
'zip_crc_check': 'passed', 'required_entries_present': required,
|
||||
'compiled_class_files': len(classes), 'class_major_versions': dict(major_versions), 'bundled_jars': len(libs),
|
||||
'main_java_sources': len(list((source / 'src/main/java').rglob('*.java'))),
|
||||
'extra_java_sources_outside_maven_root': len(list((source / 'src/main/com').rglob('*.java'))),
|
||||
'source_manifest_files': len(manifest), 'changed_source_files': changes,
|
||||
'tests_skipped': 'Tests are skipped' in log,
|
||||
'containers_before': len(before), 'containers_after': len(after), 'existing_containers_unchanged': unchanged,
|
||||
'built_at': next((line.split('Finished at:', 1)[1].strip() for line in log.splitlines() if 'Finished at:' in line), None),
|
||||
'elapsed': next((line.split('Total time:', 1)[1].strip() for line in log.splitlines() if 'Total time:' in line), None),
|
||||
'java_version': subprocess.check_output([str(Path.home() / '.local/opt/syly2-build/corretto-8.512.09.1/bin/java'), '-version'], stderr=subprocess.STDOUT, text=True).strip(),
|
||||
}
|
||||
(run / 'artifacts/verification.json').write_text(json.dumps(evidence, indent=2) + '\n')
|
||||
print(json.dumps(evidence, indent=2))
|
||||
if not unchanged:
|
||||
print('NOTICE: Container inventory changed during the build; inspect before/after records.')
|
||||
@@ -0,0 +1,6 @@
|
||||
FROM syly2-uat-base:20261029
|
||||
COPY java/ /opt/java/
|
||||
COPY tomcat/ /opt/tomcat/
|
||||
ENV JAVA_HOME=/opt/java CATALINA_HOME=/opt/tomcat CATALINA_BASE=/opt/tomcat PATH=/opt/java/bin:$PATH
|
||||
USER 1000:1000
|
||||
CMD ["/opt/tomcat/bin/catalina.sh", "run"]
|
||||
@@ -0,0 +1,4 @@
|
||||
FROM docker.jianmuhub.com/library/ubuntu@sha256:98f43fe45e1073f27722eb362248541a6c90599b5ac458de28cee309d92a7199
|
||||
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends libaio1 libnuma1 libncurses5 libtinfo5 libfontconfig1 fonts-dejavu-core tzdata ca-certificates && rm -rf /var/lib/apt/lists/*
|
||||
ENV TZ=Asia/Shanghai LANG=C.UTF-8
|
||||
RUN groupadd -g 1000 syly && useradd -u 1000 -g 1000 -M syly
|
||||
@@ -0,0 +1,5 @@
|
||||
FROM syly2-uat-base:20261029
|
||||
COPY mysql/ /opt/mysql/
|
||||
ENV PATH=/opt/mysql/bin:$PATH
|
||||
USER 1000:1000
|
||||
ENTRYPOINT ["/opt/mysql/bin/mysqld", "--defaults-file=/etc/mysql-uat.cnf"]
|
||||
@@ -0,0 +1,16 @@
|
||||
import java.net.*;
|
||||
public class EgressProbe {
|
||||
public static void main(String[] args) throws Exception {
|
||||
String[] hosts = {"db", "10.5.34.202", "1.1.1.1"};
|
||||
int[] ports = {3306, 3306, 443};
|
||||
for (int i=0;i<hosts.length;i++) {
|
||||
boolean connected=false;
|
||||
try (Socket socket=new Socket()) {
|
||||
socket.connect(new InetSocketAddress(hosts[i],ports[i]),1500);
|
||||
connected=true;
|
||||
} catch(Exception expected) {}
|
||||
System.out.println(hosts[i]+":"+ports[i]+"="+(connected?"connected":"blocked"));
|
||||
if ((i==0)!=connected) throw new IllegalStateException("Unexpected UAT network policy");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
> 历史记录:以下说明对应 2026-10-29 原始 UAT 构建及部署,当前仓库的构建入口和密钥配置请看根目录 README。
|
||||
|
||||
# syly2 独立 UAT 部署
|
||||
|
||||
目标:`ubuntu@192.168.68.223`。部署目录:`/home/ubuntu/apps/syly2-uat`。
|
||||
|
||||
## 组成
|
||||
|
||||
- 专用 Compose 项目 `syly2-uat`,数据库、Java 应用和 Nginx 各一个容器。
|
||||
- MySQL **5.7.44**,与用户提供的线上版本一致;独立数据目录 `runtime/mysql-data`,不发布数据库端口。
|
||||
- Corretto **8.512.09.1**、Tomcat **9.0.123**;使用已编译并校验的外层工程 WAR。
|
||||
- Ubuntu 基础镜像和 Nginx 来自建木镜像仓库,固定 digest;MySQL 和 Tomcat 从厂商官方 HTTPS 地址下载。
|
||||
- MySQL 官方包核验官方 MD5,再记录 SHA-256。`package-mysql.py` 从已验证的包提取必要运行文件,避免重复传输调试库、静态库和工具。运行包再核对 SHA-256。Tomcat 核验官方 SHA-512。
|
||||
|
||||
## 数据及边界
|
||||
|
||||
使用项目根目录的 `sanya_ch_full.sql`,128,389,799 字节。仅进行流式校验、传输、导入;不把备份正文写入报告。
|
||||
|
||||
原备份 SHA-256:`d6ec01e162f4b1c92350a0c97bd163b5deb633cdd187f96ff2aadb32e899c5d4`。
|
||||
|
||||
备份恢复到此项目自己的 MySQL 实例内,库名仍为 `sanya_ch`。部署脚本只允许首次恢复,拒绝覆盖已有 UAT 数据。恢复后保存所有表的精确行数,不输出用户或业务行。
|
||||
|
||||
创建专用 `uat_admin` 用户及测试组织、角色,保留恢复数据中的原账号及密码。部署过滤器仅允许专用测试用户登录。密码保存在权限 600 的 `secrets/credentials.json`,不写入 Compose 环境变量、日志或报告。
|
||||
|
||||
应用与数据库只连接 `internal` 网络。省级上报和邮件配置改为本地禁用地址,停用定时调度;浏览器 CSP 限制页面向外部地址请求。UAT 过滤器阻断免登录重置密码、修复清库、移动端绕过登录、同步、上传连接器及 Druid 入口,并对其余非公开资源检查 UAT 登录状态。
|
||||
|
||||
这些保护仅作用于部署副本,不能替代原系统安全修复。Web 应用文件以只读方式挂载,附件上传功能未在本次部署中开放。备份数据属于受限资料,UAT 不用于真实省级上报、短信或邮件发送。
|
||||
|
||||
## 首次部署顺序
|
||||
|
||||
脚本固定目标目录;不要在已有实例上重新运行初始化/恢复。
|
||||
|
||||
1. 保存原有容器 ID、启动时间、重启计数;检查端口和空间。建立权限 700 的部署目录及私有子目录。
|
||||
2. 上传脚本、Compose、Nginx 配置以及 SQL 备份;在服务端再次核验 SQL SHA-256。
|
||||
3. 下载官方发行包并校验。执行 `package-mysql.py`,上传生成的运行包和 manifest。
|
||||
4. 构建 `Dockerfile.base`,执行 `prepare-runtime.py`,构建 `Dockerfile.mysql` 和 `Dockerfile.app`。
|
||||
5. 使用 `docker compose -f compose.json run --rm --no-deps db --initialize-insecure` 初始化空数据目录;此时配置仍为 `skip_networking=ON`。
|
||||
6. 只启动 `db`。执行 `database-uat.py restore`,核对版本、表数及精确行数,再执行 `database-uat.py seed` 设置新数据库密码与测试账号。
|
||||
7. 将 `runtime/mysql.cnf` 中 `skip_networking=ON` 改为 `OFF`,只重建本项目 `db` 服务,启动 `app` 和 `web`。
|
||||
8. 检查应用启动、登录页、验证码、登录、菜单和列表;验证阻断规则、外连隔离,并比较原有服务状态。
|
||||
|
||||
## 访问与运维
|
||||
|
||||
- 业务入口:`https://192.168.68.223:8445/syly/`。
|
||||
- 本实例使用独立自签名证书,公钥证书在 `secrets/tls/server.crt`。浏览器首次访问可能提示证书不受信任。
|
||||
- 直接访问上述 UAT HTTPS 地址,不需要 SSH 隧道。验证过程中使用的临时隧道及回环 HTTP 入口已移除。
|
||||
|
||||
```sh
|
||||
cd /home/ubuntu/apps/syly2-uat
|
||||
docker compose -f compose.json ps
|
||||
docker compose -f compose.json logs --tail 100 app
|
||||
docker compose -f compose.json up -d
|
||||
```
|
||||
|
||||
只暂停本应用并保留恢复数据:
|
||||
|
||||
```sh
|
||||
docker compose -f compose.json stop web app db
|
||||
```
|
||||
|
||||
恢复运行使用上面的 `up -d`。不要全局 prune,也不要对其他 Compose 项目执行停启、清理或重建。
|
||||
|
||||
证据位于远程 `evidence/`;本地核验结果回收到项目 `.local/uat-deploy/evidence/`。密码另存私有交接文件。启动与页面验证不代表生产验收、全量报表正确性、历史附件完整性或外部接口联调通过。
|
||||
@@ -0,0 +1,46 @@
|
||||
package uat;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Locale;
|
||||
import javax.servlet.*;
|
||||
import javax.servlet.http.*;
|
||||
|
||||
/** Deployment-only boundary for the isolated restored UAT copy. */
|
||||
public class UatGuardFilter implements Filter {
|
||||
public void init(FilterConfig config) {}
|
||||
public void destroy() {}
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
|
||||
throws IOException, ServletException {
|
||||
HttpServletRequest req = (HttpServletRequest) request;
|
||||
HttpServletResponse res = (HttpServletResponse) response;
|
||||
String path = req.getServletPath().toLowerCase(Locale.ROOT);
|
||||
res.setHeader("X-Syly-Environment", "isolated-uat");
|
||||
res.setHeader("X-Content-Type-Options", "nosniff");
|
||||
if (path.contains("appservice") || path.contains("repaircontroller") || path.contains("dataupdatecontroller")
|
||||
|| path.contains("druid") || path.equals("/rest") || path.startsWith("/rest/") || path.contains("connector.java")
|
||||
|| path.contains("filesuploadcontroller") || path.contains("/ueditor/jsp/")
|
||||
|| (path.contains("usercontroller") && req.getParameterMap().containsKey("savenewpwdforuser"))) {
|
||||
res.sendError(403, "Disabled in isolated UAT"); return;
|
||||
}
|
||||
boolean login = path.equals("/logincontroller.do") || path.equals("/logincontroller.action");
|
||||
if (login && req.getParameterMap().containsKey("checkuser")
|
||||
&& !"uat_admin".equals(req.getParameter("userName"))) {
|
||||
res.setContentType("application/json;charset=UTF-8");
|
||||
res.getWriter().write("{\"success\":false,\"msg\":\"UAT permits only the dedicated test account\"}"); return;
|
||||
}
|
||||
boolean publicPath = (login && (req.getParameterMap().containsKey("login") || req.getParameterMap().containsKey("checkuser")))
|
||||
|| path.equals("/randcodeimage") || path.equals("/") || path.equals("")
|
||||
|| path.equals("/webpage/login/login.jsp")
|
||||
|| ((path.startsWith("/plug-in/") || path.startsWith("/style/") || path.startsWith("/images/") || path.startsWith("/css/") || path.startsWith("/js/"))
|
||||
&& path.matches(".*\\.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|eot|swf|map)$"));
|
||||
if (!publicPath) {
|
||||
HttpSession session = req.getSession(false);
|
||||
com.zzc.web.system.pojo.base.Client client = session == null ? null :
|
||||
com.zzc.web.system.manager.ClientManager.getInstance().getClient(session.getId());
|
||||
if (client == null || client.getUser() == null || !"uat_admin".equals(client.getUser().getUserName())) {
|
||||
res.sendError(401, "UAT login required"); return;
|
||||
}
|
||||
}
|
||||
chain.doFilter(request, response);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"name": "syly2-uat",
|
||||
"services": {
|
||||
"db": {
|
||||
"image": "syly2-uat-mysql:5.7.44-20261029",
|
||||
"pull_policy": "never",
|
||||
"restart": "unless-stopped",
|
||||
"user": "1000:1000",
|
||||
"read_only": true,
|
||||
"cap_drop": ["ALL"],
|
||||
"security_opt": ["no-new-privileges:true"],
|
||||
"mem_limit": "1g",
|
||||
"cpus": 1.5,
|
||||
"pids_limit": 200,
|
||||
"volumes": ["./runtime/mysql-data:/var/lib/mysql", "./runtime/mysql.cnf:/etc/mysql-uat.cnf:ro", "./secrets/mysql-client.cnf:/run/secrets/mysql-client.cnf:ro"],
|
||||
"tmpfs": ["/tmp:uid=1000,gid=1000,mode=1777,size=128m"],
|
||||
"networks": ["backend"],
|
||||
"healthcheck": {"test": ["CMD", "/opt/mysql/bin/mysqladmin", "--defaults-extra-file=/run/secrets/mysql-client.cnf", "ping", "--silent"], "interval": "10s", "timeout": "5s", "retries": 12},
|
||||
"logging": {"driver":"json-file", "options":{"max-size":"10m","max-file":"3"}}
|
||||
},
|
||||
"app": {
|
||||
"image": "syly2-uat-app:tomcat9.0.123-java8-20261029",
|
||||
"pull_policy": "never",
|
||||
"restart": "unless-stopped",
|
||||
"user": "1000:1000",
|
||||
"read_only": true,
|
||||
"cap_drop": ["ALL"],
|
||||
"security_opt": ["no-new-privileges:true"],
|
||||
"mem_limit": "2g",
|
||||
"cpus": 2,
|
||||
"pids_limit": 300,
|
||||
"environment": {"CATALINA_OPTS":"-Xms256m -Xmx1280m -XX:MaxMetaspaceSize=384m -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai"},
|
||||
"volumes": ["./runtime/webapp:/opt/tomcat/webapps/syly:ro", "./runtime/server.xml:/opt/tomcat/conf/server.xml:ro", "./runtime/tomcat-work:/opt/tomcat/work", "./runtime/tomcat-logs:/opt/tomcat/logs"],
|
||||
"tmpfs": ["/tmp:uid=1000,gid=1000,mode=1777,size=128m", "/opt/tomcat/temp:uid=1000,gid=1000,mode=1777,size=128m", "/opt/tomcat/conf/Catalina:uid=1000,gid=1000,mode=0755,size=8m"],
|
||||
"networks": ["backend"],
|
||||
"depends_on": {"db":{"condition":"service_healthy"}},
|
||||
"logging": {"driver":"json-file", "options":{"max-size":"10m","max-file":"3"}}
|
||||
},
|
||||
"web": {
|
||||
"image": "docker.jianmuhub.com/library/nginx@sha256:04ac43f568bd51a2e8f37fa0a185ff8f9f4d55c3aa1f1af5008f094d026f950d",
|
||||
"pull_policy": "never",
|
||||
"entrypoint": ["nginx", "-g", "daemon off;"],
|
||||
"user": "1000:1000",
|
||||
"restart": "unless-stopped",
|
||||
"read_only": true,
|
||||
"cap_drop": ["ALL"],
|
||||
"security_opt": ["no-new-privileges:true"],
|
||||
"mem_limit": "128m",
|
||||
"cpus": 0.5,
|
||||
"pids_limit": 50,
|
||||
"ports": ["192.168.68.223:8445:8445"],
|
||||
"volumes": ["./nginx.conf:/etc/nginx/nginx.conf:ro", "./secrets/tls:/etc/nginx/tls:ro"],
|
||||
"tmpfs": ["/var/cache/nginx:uid=1000,gid=1000", "/var/run:uid=1000,gid=1000", "/tmp:uid=1000,gid=1000"],
|
||||
"networks": ["backend", "ingress"],
|
||||
"depends_on": ["app"],
|
||||
"logging": {"driver":"json-file", "options":{"max-size":"5m","max-file":"2"}}
|
||||
}
|
||||
},
|
||||
"networks": {"backend":{"internal":true}, "ingress":{}}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Restore the user-supplied dump only to the new isolated MySQL container."""
|
||||
import json, os, subprocess, sys, time
|
||||
from pathlib import Path
|
||||
os.umask(0o077)
|
||||
ROOT=Path('/home/ubuntu/apps/syly2-uat')
|
||||
DC=['docker','compose','-f',str(ROOT/'compose.json')]
|
||||
cid=subprocess.check_output(DC+['ps','-q','db'],text=True).strip()
|
||||
assert cid
|
||||
label=subprocess.check_output(['docker','inspect','--format','{{index .Config.Labels "com.docker.compose.project"}}',cid],text=True).strip()
|
||||
assert label=='syly2-uat'
|
||||
phase=sys.argv[1]
|
||||
cmd=['docker','exec','-i',cid,'/opt/mysql/bin/mysql','--max-allowed-packet=512M','--default-character-set=utf8mb4','-uroot','-N','-B']
|
||||
if phase=='inventory': cmd.insert(-4,'--defaults-extra-file=/run/secrets/mysql-client.cnf')
|
||||
def query(sql):
|
||||
p=subprocess.run(cmd,input=sql,text=True,capture_output=True)
|
||||
if p.returncode:
|
||||
(ROOT/'evidence/db-last-error.log').write_text(p.stderr)
|
||||
raise RuntimeError('SQL failed; private error log saved')
|
||||
return p.stdout.strip()
|
||||
if phase=='restore':
|
||||
assert not (ROOT/'evidence/restore-complete.json').exists(), 'Refusing repeated restore over existing UAT'
|
||||
assert query("SELECT COUNT(*) FROM information_schema.schemata WHERE schema_name='sanya_ch'")=='0'
|
||||
started=time.time()
|
||||
with (ROOT/'incoming/sanya_ch_full.sql').open('rb') as inp,(ROOT/'evidence/restore.log').open('wb') as log:
|
||||
p=subprocess.run(cmd,stdin=inp,stdout=log,stderr=log)
|
||||
if p.returncode: raise RuntimeError('Restore failed; inspect private log')
|
||||
tables=query("SELECT table_name FROM information_schema.tables WHERE table_schema='sanya_ch' AND table_type='BASE TABLE' ORDER BY table_name").splitlines()
|
||||
counts={t:int(query('SELECT COUNT(*) FROM sanya_ch.`'+t+'`')) for t in tables}
|
||||
info={'mysql_version':query('SELECT VERSION()'),'tables':len(tables),'rows':sum(counts.values()),'row_counts':counts,'seconds':round(time.time()-started,1)}
|
||||
(ROOT/'evidence/restore-complete.json').write_text(json.dumps(info,indent=2))
|
||||
cols=query("SELECT column_name FROM information_schema.columns WHERE table_schema='sanya_ch' AND table_name='t_s_base_user'").splitlines()
|
||||
(ROOT/'evidence/base-user-columns.json').write_text(json.dumps(cols))
|
||||
print(json.dumps({k:v for k,v in info.items() if k!='row_counts'}))
|
||||
elif phase=='seed':
|
||||
assert (ROOT/'evidence/restore-complete.json').exists()
|
||||
assert query("SELECT COUNT(*) FROM sanya_ch.t_s_base_user WHERE username='uat_admin'")=='0', 'Refusing to change an existing account'
|
||||
creds=json.loads((ROOT/'secrets/credentials.json').read_text())
|
||||
jdk='/home/ubuntu/.local/opt/syly2-build/corretto-8.512.09.1/bin/'
|
||||
helper=ROOT/'scripts/HashUat.java'
|
||||
helper.write_text('import java.io.*; import org.mindrot.jbcrypt.BCrypt; public class HashUat { public static void main(String[] a) throws Exception { String p=new BufferedReader(new InputStreamReader(System.in)).readLine(); System.out.print(BCrypt.hashpw(p,BCrypt.gensalt(12))); }}')
|
||||
cp=str(ROOT/'runtime/webapp/WEB-INF/lib/*')
|
||||
subprocess.run([jdk+'javac','-cp',cp,str(helper)],check=True)
|
||||
hashed=subprocess.check_output([jdk+'java','-cp',str(ROOT/'scripts')+':'+cp,'HashUat'],input=creds['uat_password'],text=True)
|
||||
columns=json.loads((ROOT/'evidence/base-user-columns.json').read_text())
|
||||
added=[]
|
||||
if 'password_update_date' not in columns:
|
||||
query('ALTER TABLE sanya_ch.t_s_base_user ADD COLUMN password_update_date datetime NULL;')
|
||||
added.append('t_s_base_user.password_update_date')
|
||||
# All IDs belong to this synthetic UAT fixture, never to a restored account.
|
||||
uid='01a186a4e1407e328d2bfe6687e68b01'
|
||||
org='01a186a4e1407e328d2bfe6687e68b02'
|
||||
role='01a186a4e1407e328d2bfe6687e68b03'
|
||||
sql=f"""USE sanya_ch;
|
||||
START TRANSACTION;
|
||||
INSERT INTO t_s_depart(ID,departname,description,org_code,org_type) VALUES('{org}','UAT验证组织','仅用于隔离测试','UAT','1');
|
||||
INSERT INTO t_s_base_user(ID,username,password,realname,status,activitiSync,area,login_fail_count,is_locked,password_update_date) VALUES('{uid}','uat_admin','{hashed}','UAT验证管理员',1,0,'460200',0,0,NOW());
|
||||
INSERT INTO t_s_user(id,create_date,create_by,create_name) VALUES('{uid}',NOW(),'uat-deploy','UAT deployment');
|
||||
INSERT INTO t_s_user_org(ID,user_id,org_id) VALUES(REPLACE(UUID(),'-',''),'{uid}','{org}');
|
||||
INSERT INTO t_s_role(ID,rolecode,rolename) VALUES('{role}','uat_admin','UAT验证角色');
|
||||
INSERT INTO t_s_role_user(ID,roleid,userid) VALUES(REPLACE(UUID(),'-',''),'{role}','{uid}');
|
||||
INSERT INTO t_s_role_function(ID,functionid,roleid) SELECT REPLACE(UUID(),'-',''),ID,'{role}' FROM t_s_function;
|
||||
COMMIT;
|
||||
CREATE USER 'syly_uat'@'%' IDENTIFIED BY '{creds['mysql_app']}';
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, EXECUTE, SHOW VIEW ON sanya_ch.* TO 'syly_uat'@'%';
|
||||
ALTER USER 'root'@'localhost' IDENTIFIED BY '{creds['mysql_root']}';
|
||||
"""
|
||||
query(sql)
|
||||
(ROOT/'evidence/uat-seed.json').write_text(json.dumps({'username':'uat_admin','user_id':uid,'org_id':org,'role_id':role,'added_columns':added,'existing_account_passwords_changed':False,'business_rows_changed':False},indent=2))
|
||||
print('Dedicated UAT account added; original accounts preserved; DB credentials initialized.')
|
||||
else:
|
||||
raise ValueError(phase)
|
||||
@@ -0,0 +1,33 @@
|
||||
worker_processes 1;
|
||||
pid /var/run/nginx.pid;
|
||||
events { worker_connections 256; }
|
||||
http {
|
||||
include /etc/nginx/mime.types;
|
||||
server_tokens off;
|
||||
access_log off;
|
||||
error_log /dev/stderr warn;
|
||||
client_max_body_size 10m;
|
||||
proxy_connect_timeout 5s;
|
||||
proxy_read_timeout 60s;
|
||||
server {
|
||||
listen 8445 ssl;
|
||||
server_name _;
|
||||
absolute_redirect off;
|
||||
ssl_certificate /etc/nginx/tls/server.crt;
|
||||
ssl_certificate_key /etc/nginx/tls/server.key;
|
||||
ssl_protocols TLSv1.2 TLSv1.3;
|
||||
add_header Content-Security-Policy "default-src 'self' 'unsafe-inline' 'unsafe-eval' data: blob:; connect-src 'self'; form-action 'self'; frame-src 'self'; base-uri 'self'" always;
|
||||
add_header X-Frame-Options SAMEORIGIN always;
|
||||
location = / { return 302 /syly/; }
|
||||
location = /syly/ { return 302 /syly/loginController.do?login; }
|
||||
location /syly/ {
|
||||
proxy_pass http://app:8080;
|
||||
proxy_set_header Host $http_host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Port 8445;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Forwarded-For $remote_addr;
|
||||
}
|
||||
location / { return 404; }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Verify the official archive and transfer only required runtime files."""
|
||||
import hashlib,json,re,tarfile
|
||||
from pathlib import Path
|
||||
root=Path(__file__).resolve().parents[1]/'.local/uat-deploy'
|
||||
archive=root/'mysql-5.7.44.tar.gz'
|
||||
def hashfile(p, alg):
|
||||
h=hashlib.new(alg)
|
||||
with p.open('rb') as f:
|
||||
for block in iter(lambda:f.read(1024*1024),b''):h.update(block)
|
||||
return h.hexdigest()
|
||||
expected=re.search(r'\b[0-9a-fA-F]{32}\b',(root/'mysql-5.7.44.tar.gz.md5').read_text()).group().lower()
|
||||
assert hashfile(archive,'md5')==expected
|
||||
out=root/'mysql-5.7.44-runtime.tar.gz'
|
||||
files=[]
|
||||
with tarfile.open(archive,'r|gz') as src,tarfile.open(out,'w:gz',compresslevel=6) as dst:
|
||||
for m in src:
|
||||
rel=m.name.split('/',1)[1] if '/' in m.name else ''
|
||||
take=rel in ['bin/mysqld','bin/mysql','bin/mysqladmin','bin/mysqldump'] or rel.startswith(('lib/','share/'))
|
||||
if take and '/debug/' not in rel and not rel.endswith('.a'):
|
||||
assert '..' not in Path(rel).parts
|
||||
dst.addfile(m,src.extractfile(m) if m.isfile() else None)
|
||||
files.append({'path':rel,'bytes':m.size})
|
||||
manifest={'source_url':'https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz','source_md5_verified':expected,'source_sha256':hashfile(archive,'sha256'),'runtime_sha256':hashfile(out,'sha256'),'runtime_bytes':out.stat().st_size,'files':files}
|
||||
(root/'mysql-runtime-manifest.json').write_text(json.dumps(manifest,indent=2))
|
||||
print(json.dumps({k:v for k,v in manifest.items() if k!='files'},indent=2))
|
||||
@@ -0,0 +1,152 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Prepare only the syly2 UAT directory. Never prints credentials or dump rows."""
|
||||
import hashlib, json, os, re, secrets, shutil, subprocess, sys, tarfile, zipfile
|
||||
from pathlib import Path
|
||||
|
||||
os.umask(0o077)
|
||||
ROOT = Path('/home/ubuntu/apps/syly2-uat')
|
||||
assert not (ROOT/'evidence/restore-complete.json').exists(), 'Preparation is for a fresh deployment only; refusing to overwrite initialized UAT configuration'
|
||||
JDK = Path('/home/ubuntu/.local/opt/syly2-build/corretto-8.512.09.1')
|
||||
WAR = Path('/home/ubuntu/builds/syly2/20261029-01/artifacts/syly.war')
|
||||
|
||||
def digest(path, alg='sha256'):
|
||||
h = hashlib.new(alg)
|
||||
with path.open('rb') as f:
|
||||
for chunk in iter(lambda: f.read(1024*1024), b''): h.update(chunk)
|
||||
return h.hexdigest()
|
||||
|
||||
def write(path, text, mode=0o600):
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
path.write_text(text)
|
||||
path.chmod(mode)
|
||||
|
||||
assert digest(WAR) == '7c1e4236d32f2d2106df738d2523f08588d73eab7f70089382e3ae5e7c827e76'
|
||||
dump = ROOT/'incoming/sanya_ch_full.sql'
|
||||
assert digest(dump) == 'd6ec01e162f4b1c92350a0c97bd163b5deb633cdd187f96ff2aadb32e899c5d4'
|
||||
dump.chmod(0o600)
|
||||
mysql = ROOT/'downloads/mysql-5.7.44-runtime.tar.gz'
|
||||
app_only = '--app-only' in sys.argv
|
||||
if not app_only:
|
||||
mysql_manifest=json.loads((ROOT/'downloads/mysql-runtime-manifest.json').read_text())
|
||||
assert mysql_manifest['source_md5_verified']
|
||||
assert digest(mysql) == mysql_manifest['runtime_sha256']
|
||||
tomcat = ROOT/'downloads/apache-tomcat-9.0.123.tar.gz'
|
||||
assert digest(tomcat, 'sha512') == (ROOT/'downloads/apache-tomcat-9.0.123.tar.gz.sha512').read_text().split()[0]
|
||||
ctx = ROOT/'image-context'
|
||||
ctx.mkdir(exist_ok=True)
|
||||
for archive, dest, allowed in [(mysql, ctx/'mysql', ('bin/', 'lib/', 'share/')), (tomcat, ctx/'tomcat', ('bin/', 'lib/', 'conf/'))]:
|
||||
if archive == mysql and app_only: continue
|
||||
if not dest.exists():
|
||||
dest.mkdir()
|
||||
with tarfile.open(archive, 'r|gz') as tf:
|
||||
for m in tf:
|
||||
name = m.name.split('/',1)[1] if '/' in m.name else ''
|
||||
if name.startswith(allowed) and '/debug/' not in name and not name.endswith('-debug'):
|
||||
assert '..' not in Path(name).parts
|
||||
m.name = name
|
||||
tf.extract(m, dest)
|
||||
if not (ctx/'java').exists(): shutil.copytree(JDK, ctx/'java', symlinks=True)
|
||||
for f in ['Dockerfile.mysql','Dockerfile.app']:
|
||||
shutil.copy2(ROOT/'scripts'/f,ctx/f)
|
||||
for p in [ctx/'tomcat/webapps',ctx/'tomcat/work',ctx/'tomcat/temp',ctx/'tomcat/logs']:
|
||||
p.mkdir(exist_ok=True)
|
||||
p.chmod(0o755)
|
||||
# Image files must be traversable by the runtime uid.
|
||||
for base, dirs, files in os.walk(ctx):
|
||||
Path(base).chmod(0o755)
|
||||
for file in files:
|
||||
p = Path(base)/file
|
||||
if not p.is_symlink(): p.chmod(0o755 if p.stat().st_mode & 0o111 else 0o644)
|
||||
secret_file = ROOT/'secrets/credentials.json'
|
||||
if not secret_file.exists():
|
||||
creds = {k:secrets.token_urlsafe(24) for k in ['mysql_root','mysql_app','uat_password']}
|
||||
creds['uat_username']='uat_admin'
|
||||
write(secret_file,json.dumps(creds,indent=2))
|
||||
creds=json.loads(secret_file.read_text())
|
||||
write(ROOT/'secrets/mysql-client.cnf','[client]\nuser=root\npassword='+creds['mysql_root']+'\nsocket=/tmp/mysql.sock\n')
|
||||
write(ROOT/'runtime/mysql.cnf','''[mysqld]
|
||||
basedir=/opt/mysql
|
||||
datadir=/var/lib/mysql
|
||||
socket=/tmp/mysql.sock
|
||||
pid-file=/tmp/mysql.pid
|
||||
port=3306
|
||||
bind-address=0.0.0.0
|
||||
character-set-server=utf8mb4
|
||||
collation-server=utf8mb4_unicode_ci
|
||||
lower_case_table_names=1
|
||||
sql_mode=NO_ENGINE_SUBSTITUTION
|
||||
max_allowed_packet=512M
|
||||
innodb_buffer_pool_size=384M
|
||||
max_connections=60
|
||||
event_scheduler=OFF
|
||||
local_infile=OFF
|
||||
secure_file_priv=NULL
|
||||
skip_name_resolve=ON
|
||||
skip_networking=ON
|
||||
''')
|
||||
webapp=ROOT/'runtime/webapp'
|
||||
if not webapp.exists():
|
||||
webapp.mkdir()
|
||||
with zipfile.ZipFile(WAR) as z: z.extractall(webapp)
|
||||
classes=webapp/'WEB-INF/classes'
|
||||
db='''hibernate.dialect=org.hibernate.dialect.MySQLDialect
|
||||
validationQuery.sqlserver=SELECT 1
|
||||
jdbc.url=jdbc:mysql://db:3306/sanya_ch?useUnicode=true&characterEncoding=UTF-8&useSSL=false&connectTimeout=5000&socketTimeout=30000
|
||||
jdbc.username=syly_uat
|
||||
jdbc.password='''+creds['mysql_app']+'''
|
||||
jdbc.dbType=mysql
|
||||
hibernate.hbm2ddl.auto=none
|
||||
scenicWebServiceBase=http://127.0.0.1:9
|
||||
hotelWebServiceBase=http://127.0.0.1:9
|
||||
hotelProviceurl=http://127.0.0.1:9
|
||||
scenicProvice=http://127.0.0.1:9
|
||||
hotelIp=127.0.0.1
|
||||
'''
|
||||
write(classes/'dbconfig.properties',db)
|
||||
write(classes/'spring-mvc-timeTask.xml','''<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
|
||||
<bean id="schedulerFactory" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"><property name="autoStartup" value="false"/></bean>
|
||||
</beans>''')
|
||||
write(classes/'log4j.properties','''log4j.rootLogger=WARN,A1
|
||||
log4j.appender.A1=org.apache.log4j.ConsoleAppender
|
||||
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
|
||||
log4j.appender.A1.layout.ConversionPattern=[%p][%c]%m%n
|
||||
log4j.logger.org.hibernate.type.descriptor.sql.BasicBinder=OFF
|
||||
log4j.logger.org.hibernate.type.descriptor.sql.BasicExtractor=OFF
|
||||
log4j.logger.org.hibernate.engine.QueryParameters=OFF
|
||||
''')
|
||||
p=classes/'spring-mvc-hibernate.xml';s=p.read_text();s=s.replace('<prop key="hibernate.show_sql">true</prop>','<prop key="hibernate.show_sql">false</prop>');s=re.sub(r'<property name="maxIdle" value="20"\s*/>','',s);write(p,s)
|
||||
p=classes/'sysConfig.properties';s=p.read_text();s=re.sub(r'^mail\.[^=]+=.*$',lambda m: m.group().split('=')[0]+'=',s,flags=re.M);s=re.sub(r'^ck.userfiles=.*$', 'ck.userfiles=/syly/upload/',s,flags=re.M);write(p,s)
|
||||
# Remove alternate embedded database credentials in the runtime copy.
|
||||
for p in (classes/'zzc').glob('zzc_database.properties*'):
|
||||
write(p,'# Disabled in isolated UAT; runtime uses dbconfig.properties\n')
|
||||
p=webapp/'WEB-INF/web.xml';s=p.read_text()
|
||||
s=s.replace('<url-pattern>*</url-pattern>','<url-pattern>/*</url-pattern>')
|
||||
if 'uatGuard' not in s:
|
||||
start=s.index('>',s.index('<web-app'))+1
|
||||
s=s[:start]+'''\n<filter><filter-name>uatGuard</filter-name><filter-class>uat.UatGuardFilter</filter-class></filter>
|
||||
<filter-mapping><filter-name>uatGuard</filter-name><url-pattern>/*</url-pattern><dispatcher>REQUEST</dispatcher></filter-mapping>\n'''+s[start:]
|
||||
# Eliminate the unused Druid servlet and its embedded credentials.
|
||||
s=re.sub(r'<servlet>\s*<servlet-name>druidStatView</servlet-name>.*?</servlet>','',s,flags=re.S)
|
||||
s=re.sub(r'<servlet-mapping>\s*<servlet-name>druidStatView</servlet-name>.*?</servlet-mapping>','',s,flags=re.S)
|
||||
write(p,s)
|
||||
login=webapp/'webpage/login/login.jsp'
|
||||
text=login.read_text()
|
||||
if 'isolated-uat-banner' not in text:
|
||||
text=text.replace('<title>','<title>[UAT] ')
|
||||
text=re.sub(r'(<body[^>]*>)',r'\1<div id="isolated-uat-banner" style="position:fixed;top:0;left:0;right:0;z-index:9999;text-align:center;background:#fff3cd;color:#664d03;padding:6px">UAT 隔离测试环境 · 数据来自备份 · 外部上报已禁用</div>',text,count=1)
|
||||
write(login,text)
|
||||
cp=str(classes)+':'+str(webapp/'WEB-INF/lib/*')+':'+str(ctx/'tomcat/lib/servlet-api.jar')
|
||||
subprocess.run([str(JDK/'bin/javac'),'-encoding','UTF-8','-cp',cp,'-d',str(classes),str(ROOT/'scripts/UatGuardFilter.java')],check=True)
|
||||
write(ROOT/'runtime/server.xml','''<Server port="-1"><Service name="Catalina">
|
||||
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" maxThreads="80" />
|
||||
<Engine name="Catalina" defaultHost="localhost"><Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">
|
||||
<Valve className="org.apache.catalina.valves.RemoteIpValve" internalProxies=".*" remoteIpHeader="x-forwarded-for" protocolHeader="x-forwarded-proto" portHeader="x-forwarded-port" hostHeader="x-forwarded-host"/>
|
||||
</Host></Engine></Service></Server>''')
|
||||
for p in [ROOT/'runtime/mysql-data', ROOT/'runtime/tomcat-work', ROOT/'runtime/tomcat-logs']:
|
||||
p.mkdir(exist_ok=True)
|
||||
tls=ROOT/'secrets/tls';tls.mkdir(exist_ok=True)
|
||||
if not (tls/'server.crt').exists():
|
||||
subprocess.run(['openssl','req','-x509','-newkey','rsa:3072','-nodes','-keyout',str(tls/'server.key'),'-out',str(tls/'server.crt'),'-days','365','-subj','/CN=syly2-uat','-addext','subjectAltName=IP:192.168.68.223,DNS:localhost'],check=True,stdout=subprocess.DEVNULL,stderr=subprocess.DEVNULL)
|
||||
write(ROOT/'evidence/runtime-manifest.json',json.dumps({'war_sha256':digest(WAR),'dump_sha256':digest(dump),'dump_bytes':dump.stat().st_size,'mysql_tar_sha256':None if app_only else digest(mysql),'mysql_vendor_md5_verified':not app_only,'tomcat_tar_sha512_verified':True,'tomcat':'9.0.123','java':'Corretto 8.512.09.1','mysql':'5.7.44'},indent=2))
|
||||
print('Runtime prepared; hashes verified; credentials kept in private files.')
|
||||
@@ -0,0 +1,34 @@
|
||||
#!/usr/bin/env python3
|
||||
"""No business mutations; inspect only status and non-sensitive response shape."""
|
||||
import json, ssl, urllib.request, urllib.error
|
||||
from pathlib import Path
|
||||
ROOT=Path(__file__).resolve().parents[1]
|
||||
evidence=ROOT/'.local/uat-deploy/evidence'
|
||||
ctx=ssl.create_default_context(cafile=str(evidence/'server.crt'))
|
||||
base='https://192.168.68.223:8445/syly/'
|
||||
results=[]
|
||||
cases=[
|
||||
('login-page','',200,'formLogin'),
|
||||
('login-controller','loginController.do?login',200,'formLogin'),
|
||||
('captcha','randCodeImage',200,None),
|
||||
('anonymous-business','hotelController.do?datagrid',401,None),
|
||||
('repair-disabled','repairController.do?uat_probe',403,None),
|
||||
('password-reset-disabled','userController.do?savenewpwdforuser',403,None),
|
||||
('mobile-disabled','appservice.do?uat_probe',403,None),
|
||||
('sync-disabled','hoteldataupdatecontroller.do?uat_probe',403,None),
|
||||
('druid-disabled','webpage/system/druid/index.html',403,None),
|
||||
('upload-disabled','plug-in/ckfinder/core/connector/java/connector.java',403,None),
|
||||
('rest-disabled','rest/uat_probe',403,None),
|
||||
('backup-account-login-disabled','loginController.do?checkuser&userName=admin',200,'UAT permits only'),
|
||||
]
|
||||
for name,path,expected,marker in cases:
|
||||
req=urllib.request.Request(base+path,headers={'User-Agent':'syly2-uat-deployment-verification'})
|
||||
try: res=urllib.request.urlopen(req,context=ctx,timeout=45)
|
||||
except urllib.error.HTTPError as e: res=e
|
||||
body=res.read(1024*1024)
|
||||
ok=res.status==expected and (marker is None or marker.encode() in body)
|
||||
if name=='captcha': ok=ok and body.startswith(b'\xff\xd8')
|
||||
results.append({'check':name,'status':res.status,'expected_status':expected,'passed':ok,'bytes':len(body)})
|
||||
(evidence/'http-checks.json').write_text(json.dumps(results,indent=2))
|
||||
print(json.dumps(results,indent=2))
|
||||
assert all(x['passed'] for x in results)
|
||||
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env python3
|
||||
import json,subprocess
|
||||
from pathlib import Path
|
||||
root=Path('/home/ubuntu/apps/syly2-uat')
|
||||
fmt='{"id":{{json .Id}},"name":{{json .Name}},"startedAt":{{json .State.StartedAt}},"running":{{json .State.Running}},"restartCount":{{json .RestartCount}}}'
|
||||
before=[json.loads(x) for x in (root/'evidence/containers-before.jsonl').read_text().splitlines()]
|
||||
after=[]
|
||||
for old in before:
|
||||
after.append(json.loads(subprocess.check_output(['docker','inspect','--format',fmt,old['id']],text=True)))
|
||||
images={}
|
||||
runtime=[]
|
||||
for service in ['db','app','web']:
|
||||
cid=subprocess.check_output(['docker','compose','-f',str(root/'compose.json'),'ps','-q',service],text=True).strip()
|
||||
assert cid, service
|
||||
state=json.loads(subprocess.check_output(['docker','inspect','--format',fmt,cid],text=True))
|
||||
state['service']=service
|
||||
state['image']=subprocess.check_output(['docker','inspect','--format','{{.Image}}',cid],text=True).strip()
|
||||
state['network_names']=json.loads(subprocess.check_output(['docker','inspect','--format','{{json .NetworkSettings.Networks}}',cid],text=True)).keys()
|
||||
state['network_names']=list(state['network_names'])
|
||||
runtime.append(state)
|
||||
info={'original_container_count':len(before),'original_containers_unchanged':before==after,'runtime':runtime}
|
||||
(root/'evidence/containers-after.json').write_text(json.dumps(after,indent=2))
|
||||
(root/'evidence/runtime-verification.json').write_text(json.dumps(info,indent=2))
|
||||
print(json.dumps(info,indent=2))
|
||||
assert before==after
|
||||
assert all(x['running'] for x in runtime)
|
||||
assert all(x['network_names']==['syly2-uat_backend'] for x in runtime if x['service'] in ['app','db'])
|
||||
@@ -0,0 +1,862 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>com.zzc</groupId>
|
||||
<artifactId>syly</artifactId>
|
||||
<version>1.0</version>
|
||||
<packaging>war</packaging>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<!-- 主要依赖库的版本定义 -->
|
||||
<spring.version>3.2.18.RELEASE</spring.version>
|
||||
<hibernate.version>4.1.0.Final</hibernate.version>
|
||||
<hibernate-common-annotations.version>4.0.2.Final</hibernate-common-annotations.version>
|
||||
<hibernate-jpa.version>1.0.1.Final</hibernate-jpa.version>
|
||||
<!-- <zzccore.version>1.0</zzccore.version> -->
|
||||
<guava.version>16.0.1</guava.version>
|
||||
|
||||
<!-- 工作流 -->
|
||||
<activiti.version>5.11</activiti.version>
|
||||
<mybatis.version>3.1.1</mybatis.version>
|
||||
|
||||
<!-- 辅助依赖包 -->
|
||||
<cglib.version>2.2</cglib.version>
|
||||
<aspectj.version>1.6.9</aspectj.version>
|
||||
<jodd.version>3.3.7</jodd.version>
|
||||
<javassist.version>3.15.0-GA</javassist.version>
|
||||
<ant.version>1.6.5</ant.version>
|
||||
|
||||
<!-- todo 没有用到 <spring-jpa.versoin>2.0.8</spring-jpa.versoin> -->
|
||||
<mybatis-spring.version>1.1.1</mybatis-spring.version>
|
||||
|
||||
<!-- 工具包 -->
|
||||
<!-- json start -->
|
||||
<jackson.version>1.9.13</jackson.version>
|
||||
<!-- todo 没有用到 <jackson2.version>2.1.2</jackson2.version> -->
|
||||
<jacksonframework.version>1.84</jacksonframework.version>
|
||||
<json-lib.version>2.1</json-lib.version>
|
||||
<fastjson-lib.version>1.2.83</fastjson-lib.version>
|
||||
<gson.version>2.2.4</gson.version>
|
||||
<!-- json start -->
|
||||
<dom4j.version>1.6.1</dom4j.version>
|
||||
<slf4j.version>1.6.1</slf4j.version>
|
||||
<log4j.version>1.2.17</log4j.version>
|
||||
<classmate.version>0.5.4</classmate.version>
|
||||
<commons-beanutils.version>1.7.0</commons-beanutils.version>
|
||||
<commons-collections.version>3.2.1</commons-collections.version>
|
||||
<commons-chain.version>1.2</commons-chain.version>
|
||||
<commons-codec.version>1.3</commons-codec.version>
|
||||
<commons-digester.version>2.0</commons-digester.version>
|
||||
<commons-io.version>1.3.2</commons-io.version>
|
||||
<commons-fileupload.version>1.2.1</commons-fileupload.version>
|
||||
<commons-lang.version>2.6</commons-lang.version>
|
||||
<commons-lang3.version>3.1</commons-lang3.version>
|
||||
<commons-email.version>1.2</commons-email.version>
|
||||
<commons-logging.version>1.0.4</commons-logging.version>
|
||||
<commons-logging-api.version>1.1</commons-logging-api.version>
|
||||
<commons-validator.version>1.3.1</commons-validator.version>
|
||||
<ehcache.version>2.4.3</ehcache.version>
|
||||
<freemarker.version>2.3.19</freemarker.version>
|
||||
<hibernate-validator.version>4.2.0.Final</hibernate-validator.version>
|
||||
<poi.version>3.9</poi.version>
|
||||
<antlr.version>3.3</antlr.version>
|
||||
<openoffice.version>3.2.1</openoffice.version>
|
||||
<!-- <jodconverter.version>3.0-beta-4</jodconverter.version> -->
|
||||
<!-- <jodconverter.version>2.2.1</jodconverter.version> -->
|
||||
<!-- todo 为什么要引入struts的lib呢? -->
|
||||
<xwork-core.version>2.1.6</xwork-core.version>
|
||||
|
||||
<!-- 数据库组件包 _start -->
|
||||
<proxool.version>0.9.1</proxool.version>
|
||||
<commons-pool.version>1.6</commons-pool.version>
|
||||
<commons-dbcp.version>1.4</commons-dbcp.version>
|
||||
<druid.version>0.2.9</druid.version>
|
||||
<mysql.version>5.1.27</mysql.version>
|
||||
<!-- sqlserver2005 -->
|
||||
<sqlserver.version>1.0.0</sqlserver.version>
|
||||
<!-- oracle -->
|
||||
<ojdbc14.version>10.2.0.4.0</ojdbc14.version>
|
||||
<!-- jtds for mssql/db2 -->
|
||||
<jtds.version>1.2.4</jtds.version>
|
||||
<h2.version>1.3.170</h2.version>
|
||||
<postgresql.version>9.1-903.jdbc4</postgresql.version>
|
||||
|
||||
<!-- 测试依赖包 -->
|
||||
<junit.version>4.7</junit.version>
|
||||
<!-- todo 没有用到 <hamcrest.version>1.3</hamcrest.version> -->
|
||||
<!-- todo 没有用到 <mockito.version>1.9.5</mockito.version> -->
|
||||
<!-- todo 没有用到 <powermock.version>1.5</powermock.version> -->
|
||||
<!-- todo 没有用到 <selenium.version>2.28.0</selenium.version> -->
|
||||
<!-- todo 没有用到 <jetty.version>7.6.8.v20121106</jetty.version> -->
|
||||
<!-- Plugin的属性定义 -->
|
||||
<!-- todo 没有用到 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> -->
|
||||
<!-- todo 没有用到 <jdk.version>1.6</jdk.version> -->
|
||||
|
||||
<CKFinder.version>2.4</CKFinder.version>
|
||||
<!-- java生成缩略图 -->
|
||||
<thumbnailator.version>0.4.6</thumbnailator.version>
|
||||
<pinyin4j.version>2.5.0</pinyin4j.version>
|
||||
<org.quartz.version>1.6.2</org.quartz.version>
|
||||
<activation.version>1.1.1</activation.version>
|
||||
<aopalliance.version>1.0</aopalliance.version>
|
||||
<xstream.version>1.4.4</xstream.version>
|
||||
<groovy.version>2.3.3</groovy.version>
|
||||
<!--poi 工具类 -->
|
||||
<easypoi.version>2.1.1</easypoi.version>
|
||||
</properties>
|
||||
|
||||
|
||||
|
||||
<dependencies>
|
||||
<!-- activation -->
|
||||
<dependency>
|
||||
<groupId>javax.activation</groupId>
|
||||
<artifactId>activation</artifactId>
|
||||
<version>${activation.version}</version>
|
||||
</dependency>
|
||||
<!-- aopalliance -->
|
||||
<dependency>
|
||||
<groupId>aopalliance</groupId>
|
||||
<artifactId>aopalliance</artifactId>
|
||||
<version>${aopalliance.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
<version>${guava.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- <dependency> <groupId>com.zzc</groupId> <artifactId>zzc-core</artifactId>
|
||||
<version>${zzccore.version}</version> </dependency> -->
|
||||
<!-- 自定义的依赖包 -->
|
||||
<dependency>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinder-updateByAlexander</artifactId>
|
||||
<version>${CKFinder.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinderPlugin-FileEditor</artifactId>
|
||||
<version>${CKFinder.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinderPlugin-ImageResize</artifactId>
|
||||
<version>${CKFinder.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ckfinder</groupId>
|
||||
<artifactId>CKFinderPlugin-Watermark</artifactId>
|
||||
<version>${CKFinder.version}</version>
|
||||
</dependency>
|
||||
<!-- ckfinder end -->
|
||||
<!-- java生成缩略图 -->
|
||||
<dependency>
|
||||
<groupId>net.coobird</groupId>
|
||||
<artifactId>thumbnailator</artifactId>
|
||||
<version>${thumbnailator.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jboss</groupId>
|
||||
<artifactId>jboss-vfs</artifactId>
|
||||
<version>3.1.0.Final</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.belerweb</groupId>
|
||||
<artifactId>pinyin4j</artifactId>
|
||||
<version>2.5.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.opensymphony.quartz</groupId>
|
||||
<artifactId>quartz</artifactId>
|
||||
<version>1.6.1</version>
|
||||
</dependency>
|
||||
<!-- SPRING start -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-core</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-beans</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aop</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-tx</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-expression</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-aspects</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-context-support</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<!-- SPRING end -->
|
||||
|
||||
<!-- hibernate -->
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-core</artifactId>
|
||||
<!-- todo 为什么要用4.2.3,而不是统一使用${hibernate.version} -->
|
||||
<version>4.2.3.Final</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-ehcache</artifactId>
|
||||
<version>${hibernate.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-proxool</artifactId>
|
||||
<version>${hibernate.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate.common</groupId>
|
||||
<artifactId>hibernate-commons-annotations</artifactId>
|
||||
<version>${hibernate-common-annotations.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate.javax.persistence</groupId>
|
||||
<artifactId>hibernate-jpa-2.0-api</artifactId>
|
||||
<version>${hibernate-jpa.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- anltr -->
|
||||
<dependency>
|
||||
<groupId>org.antlr</groupId>
|
||||
<artifactId>antlr</artifactId>
|
||||
<version>${antlr.version}</version>
|
||||
</dependency>
|
||||
<!-- spring orm -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-orm</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-jdbc</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- mybatis -->
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
<version>${mybatis.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis-spring</artifactId>
|
||||
<version>${mybatis-spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.oschina.zcx7878</groupId>
|
||||
<artifactId>fastdfs-client-java</artifactId>
|
||||
<version>1.27.0.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- 数据库相关依赖包 _start -->
|
||||
<!--proxool start -->
|
||||
<dependency>
|
||||
<groupId>com.cloudhopper.proxool</groupId>
|
||||
<artifactId>proxool</artifactId>
|
||||
<version>${proxool.version}</version>
|
||||
<!-- 许仙明加入 geronimo-javamail_1.4_spec后删除 -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>geronimo-spec-javamail</artifactId>
|
||||
<groupId>geronimo-spec</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>avalon-framework-api</artifactId>
|
||||
<groupId>avalon-framework</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.cloudhopper.proxool</groupId>
|
||||
<artifactId>proxool-cglib</artifactId>
|
||||
<version>${proxool.version}</version>
|
||||
</dependency>
|
||||
<!-- proxool end -->
|
||||
<dependency>
|
||||
<groupId>commons-pool</groupId>
|
||||
<artifactId>commons-pool</artifactId>
|
||||
<version>${commons-pool.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-dbcp</groupId>
|
||||
<artifactId>commons-dbcp</artifactId>
|
||||
<version>${commons-dbcp.version}</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
<version>${druid.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
<version>${mysql.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.oracle</groupId>
|
||||
<artifactId>ojdbc14</artifactId>
|
||||
<version>${ojdbc14.version}</version>
|
||||
</dependency>
|
||||
<!-- jtds for mssql/db2 -->
|
||||
<dependency>
|
||||
<groupId>net.sourceforge.jtds</groupId>
|
||||
<artifactId>jtds</artifactId>
|
||||
<version>${jtds.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<!-- h2 -->
|
||||
<dependency>
|
||||
<groupId>com.h2database</groupId>
|
||||
<artifactId>h2</artifactId>
|
||||
<version>${h2.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- postgresql -->
|
||||
<!-- 数据库相关依赖包 _end -->
|
||||
|
||||
<!-- WEB begin -->
|
||||
<!-- spring mvc -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-web</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-webmvc</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- web依赖包 -->
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>servlet-api</artifactId>
|
||||
<version>2.5</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jsp-api</artifactId>
|
||||
<version>2.0</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>javax.servlet</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
<version>1.2</version>
|
||||
</dependency>
|
||||
<!-- WEB end -->
|
||||
|
||||
<!-- 辅助依赖包 _start -->
|
||||
<dependency>
|
||||
<groupId>cglib</groupId>
|
||||
<artifactId>cglib-nodep</artifactId>
|
||||
<version>${cglib.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjrt</artifactId>
|
||||
<version>${aspectj.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.aspectj</groupId>
|
||||
<artifactId>aspectjweaver</artifactId>
|
||||
<version>${aspectj.version}</version>
|
||||
<scope>runtime</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.jodd</groupId>
|
||||
<artifactId>jodd</artifactId>
|
||||
<version>${jodd.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.javassist</groupId>
|
||||
<artifactId>javassist</artifactId>
|
||||
<version>${javassist.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ant</groupId>
|
||||
<artifactId>ant</artifactId>
|
||||
<version>${ant.version}</version>
|
||||
</dependency>
|
||||
<!-- 辅助依赖包 _end -->
|
||||
|
||||
<!-- 工具包 -->
|
||||
<!-- JSON begin -->
|
||||
<dependency>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-mapper-asl</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codehaus.jackson</groupId>
|
||||
<artifactId>jackson-core-asl</artifactId>
|
||||
<version>${jackson.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>net.sf.json-lib</groupId>
|
||||
<artifactId>json-lib</artifactId>
|
||||
<version>${json-lib.version}</version>
|
||||
<classifier>jdk15</classifier>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>fastjson</artifactId>
|
||||
<version>${fastjson-lib.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.code.gson</groupId>
|
||||
<artifactId>gson</artifactId>
|
||||
<version>${gson.version}</version>
|
||||
</dependency>
|
||||
<!-- JSON end -->
|
||||
<!-- dom4j -->
|
||||
<dependency>
|
||||
<groupId>dom4j</groupId>
|
||||
<artifactId>dom4j</artifactId>
|
||||
<version>${dom4j.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>xml-apis</groupId>
|
||||
<artifactId>xml-apis</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- slf4j -->
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>${slf4j.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>${slf4j.version}</version>
|
||||
</dependency>
|
||||
<!-- log4j -->
|
||||
<dependency>
|
||||
<groupId>log4j</groupId>
|
||||
<artifactId>log4j</artifactId>
|
||||
<version>${log4j.version}</version>
|
||||
</dependency>
|
||||
<!-- classmate -->
|
||||
<dependency>
|
||||
<groupId>com.fasterxml</groupId>
|
||||
<artifactId>classmate</artifactId>
|
||||
<version>${classmate.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- commons-beanutils -->
|
||||
<dependency>
|
||||
<groupId>commons-beanutils</groupId>
|
||||
<artifactId>commons-beanutils</artifactId>
|
||||
<version>${commons-beanutils.version}</version>
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<!-- commons-collections -->
|
||||
<dependency>
|
||||
<groupId>commons-collections</groupId>
|
||||
<artifactId>commons-collections</artifactId>
|
||||
<version>${commons-collections.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-chain -->
|
||||
<dependency>
|
||||
<groupId>commons-chain</groupId>
|
||||
<artifactId>commons-chain</artifactId>
|
||||
<version>${commons-chain.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-codec -->
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>${commons-codec.version}</version>
|
||||
</dependency>
|
||||
<!-- jbcrypt for password hashing -->
|
||||
<dependency>
|
||||
<groupId>org.mindrot</groupId>
|
||||
<artifactId>jbcrypt</artifactId>
|
||||
<version>0.4</version>
|
||||
</dependency>
|
||||
<!-- commons-digester -->
|
||||
<dependency>
|
||||
<groupId>commons-digester</groupId>
|
||||
<artifactId>commons-digester</artifactId>
|
||||
<version>${commons-digester.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-io -->
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
<artifactId>commons-io</artifactId>
|
||||
<version>${commons-io.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-fileupload -->
|
||||
<dependency>
|
||||
<groupId>commons-fileupload</groupId>
|
||||
<artifactId>commons-fileupload</artifactId>
|
||||
<version>${commons-fileupload.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-lang -->
|
||||
<dependency>
|
||||
<groupId>commons-lang</groupId>
|
||||
<artifactId>commons-lang</artifactId>
|
||||
<version>${commons-lang.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-lang3 -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-lang3</artifactId>
|
||||
<version>${commons-lang3.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-email -->
|
||||
<dependency>
|
||||
<groupId>org.apache.commons</groupId>
|
||||
<artifactId>commons-email</artifactId>
|
||||
<version>${commons-email.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-logging -->
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging</artifactId>
|
||||
<version>${commons-logging.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-logging</groupId>
|
||||
<artifactId>commons-logging-api</artifactId>
|
||||
<version>${commons-logging-api.version}</version>
|
||||
</dependency>
|
||||
<!-- commons-validator -->
|
||||
<dependency>
|
||||
<groupId>commons-validator</groupId>
|
||||
<artifactId>commons-validator</artifactId>
|
||||
<version>${commons-validator.version}</version>
|
||||
</dependency>
|
||||
<!-- ehcache -->
|
||||
<dependency>
|
||||
<groupId>net.sf.ehcache</groupId>
|
||||
<artifactId>ehcache-core</artifactId>
|
||||
<version>${ehcache.version}</version>
|
||||
</dependency>
|
||||
<!-- freemarker -->
|
||||
<dependency>
|
||||
<groupId>org.freemarker</groupId>
|
||||
<artifactId>freemarker</artifactId>
|
||||
<version>${freemarker.version}</version>
|
||||
</dependency>
|
||||
<!-- JSR303 Bean Validator -->
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator</artifactId>
|
||||
<version>${hibernate-validator.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
<artifactId>hibernate-validator-annotation-processor</artifactId>
|
||||
<version>${hibernate-validator.version}</version>
|
||||
</dependency>
|
||||
<!-- poi start -->
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi</artifactId>
|
||||
<version>${poi.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml</artifactId>
|
||||
<version>${poi.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-ooxml-schemas</artifactId>
|
||||
<version>${poi.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.poi</groupId>
|
||||
<artifactId>poi-scratchpad</artifactId>
|
||||
<version>${poi.version}</version>
|
||||
</dependency>
|
||||
<!-- openoffice start -->
|
||||
<dependency>
|
||||
<groupId>org.openoffice</groupId>
|
||||
<artifactId>juh</artifactId>
|
||||
<version>${openoffice.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openoffice</groupId>
|
||||
<artifactId>unoil</artifactId>
|
||||
<version>${openoffice.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.openoffice</groupId>
|
||||
<artifactId>jurt</artifactId>
|
||||
<version>${openoffice.version}</version>
|
||||
</dependency>
|
||||
<!-- java的OpenDucument文件转换器,它利用OpenOffice来进行转换工作 -->
|
||||
|
||||
<!-- openoffice end -->
|
||||
<dependency>
|
||||
<groupId>com.opensymphony</groupId>
|
||||
<artifactId>xwork-core</artifactId>
|
||||
<version>${xwork-core.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- TEST begin -->
|
||||
<!-- junit -->
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>${junit.version}</version>
|
||||
</dependency>
|
||||
<!-- hamcrest -->
|
||||
<!--<dependency> <groupId>org.hamcrest</groupId> <artifactId>hamcrest-all</artifactId>
|
||||
<version>${hamcrest.version}</version> </dependency> -->
|
||||
|
||||
<!-- spring -->
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
<artifactId>spring-test</artifactId>
|
||||
<version>${spring.version}</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- jacob -->
|
||||
<dependency>
|
||||
<groupId>net.sf.jacob-project</groupId>
|
||||
<artifactId>jacob</artifactId>
|
||||
<version>1.14.3</version>
|
||||
</dependency>
|
||||
<!-- highchart 图片导出 -->
|
||||
<dependency>
|
||||
<groupId>com.kenai.nbpwr</groupId>
|
||||
<artifactId>org-apache-batik-all</artifactId>
|
||||
<version>1.7-201003011305</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlgraphics</groupId>
|
||||
<artifactId>fop</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xerces</groupId>
|
||||
<artifactId>xercesImpl</artifactId>
|
||||
<version>2.7.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xml-apis</groupId>
|
||||
<artifactId>xml-apis-ext</artifactId>
|
||||
<version>1.3.04</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xml-apis</groupId>
|
||||
<artifactId>xml-apis</artifactId>
|
||||
<version>1.3.04</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.xmlgraphics</groupId>
|
||||
<artifactId>xmlgraphics-commons</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>xalan</groupId>
|
||||
<artifactId>xalan</artifactId>
|
||||
<version>2.7.0</version>
|
||||
</dependency>
|
||||
<!-- Xml数据导出导入 -->
|
||||
<dependency>
|
||||
<groupId>com.thoughtworks.xstream</groupId>
|
||||
<artifactId>xstream</artifactId>
|
||||
<version>${xstream.version}</version>
|
||||
</dependency>
|
||||
<!-- groovy 脚本 -->
|
||||
<dependency>
|
||||
<groupId>org.codehaus.groovy</groupId>
|
||||
<artifactId>groovy</artifactId>
|
||||
<version>${groovy.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-httpclient</groupId>
|
||||
<artifactId>commons-httpclient</artifactId>
|
||||
<version>3.0.1</version>
|
||||
</dependency>
|
||||
<!-- 许仙明加入 geronimo-javamail_1.4_spec -->
|
||||
<dependency>
|
||||
<groupId>org.apache.geronimo.specs</groupId>
|
||||
<artifactId>geronimo-javamail_1.4_spec</artifactId>
|
||||
<version>1.6</version>
|
||||
</dependency>
|
||||
<!-- 龙金波加入 ueditor依赖jar -->
|
||||
|
||||
<!-- httpclient -->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpcore</artifactId>
|
||||
<version>4.4.10</version>
|
||||
</dependency>
|
||||
|
||||
<!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
|
||||
<dependency>
|
||||
<groupId>org.apache.httpcomponents</groupId>
|
||||
<artifactId>httpclient</artifactId>
|
||||
<version>4.5.6</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.apache.axis</groupId>
|
||||
<artifactId>axis</artifactId>
|
||||
<version>1.4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.artofsolving</groupId>
|
||||
<artifactId>jodconverter</artifactId>
|
||||
<version>3.0-beta-4</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>javax.xml.rpc</groupId>
|
||||
<artifactId>javax.xml.rpc-api</artifactId>
|
||||
<version>1.1.2</version>
|
||||
</dependency>
|
||||
<!-- Hutool工具包 -->
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.8.25</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<organization>
|
||||
<name>zzc开发平台</name>
|
||||
</organization>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-war-plugin</artifactId>
|
||||
<version>3.2.0</version>
|
||||
<!-- <configuration>
|
||||
<webResources>
|
||||
<resource>
|
||||
<directory>${project.basedir}/src/main/java/com/zzc/web/export/model</directory>
|
||||
<targetPath>WEB-INF\classes\com\zzc\web\export</targetPath>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>**/*</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</webResources>
|
||||
</configuration>-->
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>tomcat-maven-plugin</artifactId>
|
||||
<version>1.1</version>
|
||||
<configuration>
|
||||
<path>/syly</path>
|
||||
<port>8080</port>
|
||||
<uriEncoding>UTF-8</uriEncoding>
|
||||
<url>http://localhost:8080/manager/html</url>
|
||||
<server>tomcat7</server>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<configuration>
|
||||
<source>1.8</source>
|
||||
<target>1.8</target>
|
||||
<compilerArgs>
|
||||
<arg>-XDignore.symbol.file</arg>
|
||||
</compilerArgs>
|
||||
<compilerArguments>
|
||||
<verbose/>
|
||||
<bootclasspath>${java.home}/lib/rt.jar${path.separator}${java.home}/lib/jce.jar</bootclasspath>
|
||||
</compilerArguments>
|
||||
<fork>true</fork>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
<testFailureIgnore>true</testFailureIgnore>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
<finalName>syly</finalName>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
<include>**/*.sql</include>
|
||||
<include>**/*.ftl</include>
|
||||
<include>**/*.xls</include>
|
||||
<include>**/*.xlsx</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</resource>
|
||||
<resource>
|
||||
<directory>src/main/resources</directory>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
<testResources>
|
||||
<testResource>
|
||||
<directory>src/test/java</directory>
|
||||
<includes>
|
||||
<include>**/*.xml</include>
|
||||
<include>**/*.sql</include>
|
||||
<include>**/*.ftl</include>
|
||||
</includes>
|
||||
<filtering>false</filtering>
|
||||
</testResource>
|
||||
<testResource>
|
||||
<directory>src/test/resources</directory>
|
||||
</testResource>
|
||||
</testResources>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
root="$PWD"
|
||||
mvn_bin="${MVN:-mvn}"
|
||||
repo="${MAVEN_REPO_LOCAL:-$root/.local/m2}"
|
||||
mkdir -p "$repo"
|
||||
install_jar() {
|
||||
"$mvn_bin" -B -ntp "-Dmaven.repo.local=$repo" \
|
||||
org.apache.maven.plugins:maven-install-plugin:3.1.4:install-file \
|
||||
"-DgroupId=$1" "-DartifactId=$2" "-Dversion=$3" \
|
||||
-Dpackaging=jar -DgeneratePom=true "-Dfile=$4"
|
||||
}
|
||||
install_jar com.oracle ojdbc14 10.2.0.4.0 jar/ojdbc14/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.jar
|
||||
for name in CKFinder-updateByAlexander CKFinderPlugin-FileEditor CKFinderPlugin-ImageResize CKFinderPlugin-Watermark; do
|
||||
install_jar com.ckfinder "$name" 2.4 "jar/ckfinder/ckfinder/$name/2.4/$name-2.4.jar"
|
||||
done
|
||||
install_jar com.artofsolving jodconverter 3.0-beta-4 src/main/webapp/WEB-INF/lib/jodconverter-3.0-beta-4.jar
|
||||
"$mvn_bin" -B -ntp "-Dmaven.repo.local=$repo" -Dmaven.test.skip=true clean package
|
||||
@@ -0,0 +1,49 @@
|
||||
import com.zzc.core.util.EncryptionUtil;
|
||||
import com.zzc.core.util.RsaUtils;
|
||||
import com.zzc.core.util.RuntimeSecrets;
|
||||
import cn.hutool.crypto.asymmetric.KeyType;
|
||||
import cn.hutool.crypto.asymmetric.RSA;
|
||||
import cn.hutool.crypto.SecureUtil;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
import java.util.Base64;
|
||||
|
||||
/** Offline checks; the caller supplies test keys in a private temporary file. */
|
||||
public class SecretsCheck {
|
||||
private static void check(boolean result, String message) {
|
||||
if (!result) throw new AssertionError(message);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
if (args.length > 0 && args[0].equals("config")) {
|
||||
check(args[1].equals(RuntimeSecrets.required("SYLY_CONFIG_TEST")), "Configuration source/precedence");
|
||||
System.out.println("Private-file/environment configuration checks passed");
|
||||
return;
|
||||
}
|
||||
if (args.length > 0 && args[0].equals("missing")) {
|
||||
try {
|
||||
RuntimeSecrets.required("SYLY_MISSING_TEST_SECRET");
|
||||
throw new AssertionError("Missing secrets must fail");
|
||||
} catch (IllegalStateException expected) {
|
||||
check(!expected.getMessage().contains("test-secret-value"), "Value leaked");
|
||||
}
|
||||
check(RuntimeSecrets.optional("SYLY_MISSING_TEST_SECRET").isEmpty(), "Optional default");
|
||||
System.out.println("Missing-secret checks passed");
|
||||
return;
|
||||
}
|
||||
String plain = "offline-check-中文-2026";
|
||||
String encrypted = EncryptionUtil.encrypt(plain);
|
||||
check(!plain.equals(encrypted), "AES must encrypt");
|
||||
check(plain.equals(EncryptionUtil.decrypt(encrypted)), "AES round trip");
|
||||
String raw = SecureUtil.aes(Base64.getDecoder().decode(RuntimeSecrets.required("SYLY_AES_KEY"))).encryptBase64(plain);
|
||||
check(encrypted.substring(8).equals(raw), "AES format changed");
|
||||
check(plain.equals(EncryptionUtil.decrypt(raw)), "Legacy ciphertext without prefix");
|
||||
check(EncryptionUtil.encrypt(null) == null, "Null input");
|
||||
check("".equals(EncryptionUtil.decrypt("")), "Empty input");
|
||||
check(plain.equals(EncryptionUtil.decrypt(plain)), "Plaintext compatibility");
|
||||
String rsaCipher = RsaUtils.getInstance().encrypt(plain);
|
||||
check(plain.equals(RsaUtils.decrypt(rsaCipher)), "RSA round trip with retained public key");
|
||||
RSA independent = new RSA(RuntimeSecrets.required("SYLY_RSA_PRIVATE_KEY"), RsaUtils.getPublicKey());
|
||||
check(plain.equals(new String(independent.decrypt(Base64.getDecoder().decode(rsaCipher), KeyType.PrivateKey), StandardCharsets.UTF_8)), "RSA compatibility");
|
||||
System.out.println("AES/RSA offline compatibility checks passed");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Inspect the built WAR without launching the application or reading business data."""
|
||||
from pathlib import Path
|
||||
import collections
|
||||
import hashlib
|
||||
import json
|
||||
import struct
|
||||
import zipfile
|
||||
|
||||
root = Path(__file__).resolve().parents[1]
|
||||
war = root / 'target/syly.war'
|
||||
required = [
|
||||
'WEB-INF/web.xml',
|
||||
'WEB-INF/classes/com/zzc/web/system/controller/core/LoginController.class',
|
||||
'WEB-INF/classes/com/zzc/core/interceptors/AuthInterceptor.class',
|
||||
'WEB-INF/classes/com/zzc/web/htoal/controller/HotelMonthlyController.class',
|
||||
'WEB-INF/classes/com/zzc/core/util/RuntimeSecrets.class',
|
||||
]
|
||||
with zipfile.ZipFile(war) as archive:
|
||||
assert archive.testzip() is None, 'WAR CRC failure'
|
||||
names = archive.namelist()
|
||||
assert all(name in names for name in required), 'Missing application entry'
|
||||
classes = [n for n in names if n.startswith('WEB-INF/classes/') and n.endswith('.class')]
|
||||
versions = collections.Counter(struct.unpack('>H', archive.read(n)[6:8])[0] for n in classes)
|
||||
assert set(versions) == {52}, versions
|
||||
libs = [n for n in names if n.startswith('WEB-INF/lib/') and n.endswith('.jar')]
|
||||
for name in ['dbconfig.properties', 'sysConfig.properties', 'zzc/zzc_database.properties']:
|
||||
data = archive.read('WEB-INF/classes/' + name).decode('utf-8')
|
||||
for line in data.splitlines():
|
||||
if line.startswith(('jdbc.password=', 'mail.pwd=', 'password=')):
|
||||
assert not line.split('=', 1)[1].strip(), 'Packaged credential in ' + name
|
||||
assert 'druidStatView' not in archive.read('WEB-INF/web.xml').decode('utf-8')
|
||||
print(json.dumps({
|
||||
'war_sha256': hashlib.sha256(war.read_bytes()).hexdigest(),
|
||||
'war_bytes': war.stat().st_size,
|
||||
'zip_crc_check': 'passed',
|
||||
'compiled_class_files': len(classes),
|
||||
'class_major_versions': dict(versions),
|
||||
'bundled_jars': len(libs),
|
||||
'required_entries_present': required,
|
||||
'packaged_credential_checks': 'passed',
|
||||
}, indent=2))
|
||||
@@ -0,0 +1,13 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
cd "$(dirname "$0")/.."
|
||||
mkdir -p target/offline-checks
|
||||
jdk_bin="${JAVA_HOME:?Set JAVA_HOME to JDK 8}/bin"
|
||||
cp="target/classes:target/syly/WEB-INF/lib/*"
|
||||
"$jdk_bin/javac" -encoding UTF-8 -cp "$cp" -d target/offline-checks scripts/verification/SecretsCheck.java
|
||||
"$jdk_bin/java" -cp "target/offline-checks:$cp" SecretsCheck missing
|
||||
printf 'SYLY_CONFIG_TEST=from-file\n' > target/offline-checks/config-test.properties
|
||||
env -u SYLY_CONFIG_TEST "$jdk_bin/java" -Dsyly.secrets.file="$PWD/target/offline-checks/config-test.properties" -cp "target/offline-checks:$cp" SecretsCheck config from-file
|
||||
SYLY_CONFIG_TEST=from-environment "$jdk_bin/java" -Dsyly.secrets.file="$PWD/target/offline-checks/config-test.properties" -cp "target/offline-checks:$cp" SecretsCheck config from-environment
|
||||
# Uses the existing deployment keys supplied privately by the operator.
|
||||
"$jdk_bin/java" -cp "target/offline-checks:$cp" SecretsCheck
|
||||
@@ -0,0 +1,635 @@
|
||||
package taiji.swj.client;
|
||||
|
||||
|
||||
import taiji.swj.service.SwjService;
|
||||
|
||||
import taiji.swj.service.impl.SwjServiceImplService;
|
||||
|
||||
public class Client {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
SwjServiceImplService service = new SwjServiceImplService();
|
||||
SwjService s = service.getSwjServiceImplPort();
|
||||
|
||||
//企业设立
|
||||
int result = SpEnpInforRev("1", "2", getEnpInfor(),s);
|
||||
|
||||
//企业变更
|
||||
// int result = SpEnpChangeRev("1","2","3",getEnpInforChange(),s);
|
||||
|
||||
//企业换照
|
||||
// int result = SpEnpChangeLic("1", "2", getChangeLic(), s);
|
||||
|
||||
//企业注销
|
||||
// int result = SpEnpLogoutRev("1","2",getLogoutInfo(),s);
|
||||
|
||||
//个体设立
|
||||
// int result = spGtInforRev("1","2",getGtInfor(),s);
|
||||
|
||||
//个体变更
|
||||
// int result = SpGtChangeRev("1","2","3",getGtInforChange(),s);
|
||||
|
||||
//个体注销(暂时还未xml信息模板)
|
||||
// int result = SpGtLogoutRev("1","2",getGtLogoutRev(),s);
|
||||
|
||||
//企业设立前的基本信息接口
|
||||
// int result = spBeforeCreateRev("1","2",getMainInfo(),s);
|
||||
|
||||
System.out.println("result=" + result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 企业设立
|
||||
* @param GsEnpid
|
||||
* @param Md5Code
|
||||
* @param EnpInfor
|
||||
* @return
|
||||
*/
|
||||
private static Integer SpEnpInforRev(String GsEnpid,String Md5Code,String EnpInfor,SwjService s){
|
||||
int result = s.spEnpInforRev(GsEnpid, Md5Code, EnpInfor);
|
||||
return result;
|
||||
}
|
||||
|
||||
//返回企业设立测试xml
|
||||
private static String getEnpInfor(){
|
||||
// String EnpInfor = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
|
||||
// "<ROOT>"+
|
||||
// "<INFOR_MAIN>"+
|
||||
// "<natrualrate>0.0</natrualrate>"+
|
||||
// "<corporationname>天津刚刚科技发展有限责任公司</corporationname>"+
|
||||
// "<certificatefinancetypeName/>"+
|
||||
// "<invCountryNameZj>?й?</invCountryNameZj>"+
|
||||
// "<webAddress/>"+
|
||||
// "<appDepNameSw>????б????????г??????????????</appDepNameSw>"+
|
||||
// "<taxAgentPhone/>"+
|
||||
// "<districtNameSw>??????????</districtNameSw>"+
|
||||
// "<couIndustry>7519</couIndustry>"+
|
||||
// "<certificatefinancecode>130230198903151219</certificatefinancecode>"+
|
||||
// "<workNameCode>06</workNameCode>"+
|
||||
// "<institutionname>无</institutionname>"+
|
||||
// "<singleTax>1</singleTax>"+
|
||||
// "<workphone>18812616111</workphone>"+
|
||||
// "<regMoney>10.0</regMoney>"+
|
||||
// "<appDepCode>328662147</appDepCode>"+
|
||||
// "<product1Name/>"+
|
||||
// "<financename>55</financename>"+
|
||||
// "<organizationCode/>"+
|
||||
// "<regphone>18812616111</regphone>"+
|
||||
// "<certificatecode>210300198407115718</certificatecode>"+
|
||||
// "<isFtz>1</isFtz>"+
|
||||
// "<gsCheckTime/>"+
|
||||
// "<delegateName>44</delegateName>"+
|
||||
// "<forEntName/>"+
|
||||
// "<certificatetype>1</certificatetype>"+
|
||||
// "<applypeopleAd>?????ó??????(???????????)55555</applypeopleAd>"+
|
||||
// "<revenuename>33</revenuename>"+
|
||||
// "<certificaterevenuetype>01</certificaterevenuetype>"+
|
||||
// "<appDepCodeSw>0063</appDepCodeSw>"+
|
||||
// "<calculatetypeSw>12</calculatetypeSw>"+
|
||||
// "<rundeadlineend/>"+
|
||||
// "<districtNameZj>????б???????</districtNameZj>"+
|
||||
// "<certificatefinancetype>01</certificatefinancetype>"+
|
||||
// "<regAddress>?????ó??????(???????????)55555</regAddress>"+
|
||||
// "<UniSCID>91120118MA05Q42D3K</UniSCID>"+
|
||||
// "<certificatetypeZj>0</certificatetypeZj>"+
|
||||
// "<workNumber>2</workNumber>"+
|
||||
// "<gsCreateTime>2018-01-12 17:02:10</gsCreateTime>"+
|
||||
// "<gsCreateUserName>石鑫丽</gsCreateUserName>"+
|
||||
// "<calculatetype/>"+
|
||||
// "<rundeadlinestart>2017-07-01</rundeadlinestart>"+
|
||||
// "<accountingtype>02</accountingtype>"+
|
||||
// "<financeemail>无</financeemail>"+
|
||||
// "<moneyTypeCodeZS>156</moneyTypeCodeZS>"+
|
||||
// "<certificatetypeSw>01</certificatetypeSw>"+
|
||||
// "<regpostalcode>300463</regpostalcode>"+
|
||||
// "<applypeople>55</applypeople>"+
|
||||
// "<unittype>01</unittype>"+
|
||||
// "<foreignrate>0</foreignrate>"+
|
||||
// "<product2Name/>"+
|
||||
// "<isopen>1</isopen>"+
|
||||
// "<depType>1</depType>"+
|
||||
// "<applypeoplectypeName>身份证</applypeoplectypeName>"+
|
||||
// "<copyNum>1.0</copyNum>"+
|
||||
// "<companytypeName>其它有限责任公司</companytypeName>"+
|
||||
// "<workAddress>?????ó??????(???????????)55555</workAddress>"+
|
||||
// "<revenuephone>18812616114</revenuephone>"+
|
||||
// "<accountingtypeName/>"+
|
||||
// "<icNum>0</icNum>"+
|
||||
// "<moneyTypeCode/>"+
|
||||
// "<workpostalcode>300463</workpostalcode>"+
|
||||
// "<foundDate>2017-07-01</foundDate>"+
|
||||
// "<industry94>M7519</industry94>"+
|
||||
// "<certificatetypeNameZj>身份证</certificatetypeNameZj>"+
|
||||
// "<industry02>M7710</industry02>"+
|
||||
// "<regNem>120118000153785</regNem>"+
|
||||
// "<financecellphone>18812616113</financecellphone>"+
|
||||
// "<ftzRegType>1</ftzRegType>"+
|
||||
// "<districtCodeZj>120116</districtCodeZj>"+
|
||||
// "<certificaterevenuetypeName/>"+
|
||||
// "<jdxzdm>120116502</jdxzdm>"+
|
||||
// "<gsCreateUserId>0305e4b353ee8a145961340d834b7287</gsCreateUserId>"+
|
||||
// "<cellphone>18812616111</cellphone>"+
|
||||
// "<workName>?????</workName>"+
|
||||
// "<taxAgentName/>"+
|
||||
// "<appDepName>????б????????г??????????????</appDepName>"+
|
||||
// "<adminDepName/>"+
|
||||
// "<forEntAddress/>"+
|
||||
// "<applypeoplectype>0</applypeoplectype>"+
|
||||
// "<gsCheckUserName/>"+
|
||||
// "<applypeoplephone>18812616113</applypeoplephone>"+
|
||||
// "<countryrate>0</countryrate>"+
|
||||
// "<moneyTypeNameZS>?????</moneyTypeNameZS>"+
|
||||
// "<invCountryCodeZj>156</invCountryCodeZj>"+
|
||||
// "<industryClass/>"+
|
||||
// "<districtName>市自贸区市场监管局</districtName>"+
|
||||
// "<couIndustryName/>"+
|
||||
// "<taxAgentTaxCode/>"+
|
||||
// "<moneyTypeName/>"+
|
||||
// "<revenueemail>无</revenueemail>"+
|
||||
// "<email/>"+
|
||||
// "<certificatetypeNameSw>身份证</certificatetypeNameSw>"+
|
||||
// "<isSmall>1</isSmall>"+
|
||||
// "<applypeoplecellphone>18812616113</applypeoplecellphone>"+
|
||||
// "<workarea>自营和代理货物及技术的进出口;对外贸易经营。</workarea>"+
|
||||
// "<certificaterevenuecode>140700198003136217</certificaterevenuecode>"+
|
||||
// "<payid_institution>无</payid_institution>"+
|
||||
// "<foreignpeoplenum/>"+
|
||||
// "<applypeoplecid>130230198903151219</applypeoplecid>"+
|
||||
// "<economyType00>150</economyType00>"+
|
||||
// "<adminDepCode/>"+
|
||||
// "<mainWorkArea>无</mainWorkArea>"+
|
||||
// "<gsid>201094</gsid>"+
|
||||
// "<product3Name/>"+
|
||||
// "<mainRegAd>无</mainRegAd>"+
|
||||
// "<invCountryCode/>"+
|
||||
// "<taxAgentEmail/>"+
|
||||
// "<invCountryName/>"+
|
||||
// "<companytype>159</companytype>"+
|
||||
// "<linkphone>18812616111</linkphone>"+
|
||||
// "<jdxzmc>滨海东疆保税港区</jdxzmc>"+
|
||||
// "<economyType94>62</economyType94>"+
|
||||
// "<districtCodeSw>40200</districtCodeSw>"+
|
||||
// "<districtCode>120118</districtCode>"+
|
||||
// "<financephone>18812616113</financephone>"+
|
||||
// "<regtempid>23</regtempid>"+
|
||||
// "<applypeoplepostcode>300463</applypeoplepostcode>"+
|
||||
// "<revenuecellphone>18812616114</revenuecellphone>"+
|
||||
// "<unittypeName>???</unittypeName>"+
|
||||
// "</INFOR_MAIN>"+
|
||||
// "<INFOR_INVESTOR>"+
|
||||
// "<InvCerNO>130230198903151219</InvCerNO>"+
|
||||
// "<parZrfsName/>"+
|
||||
// "<assignRate>1</assignRate>"+
|
||||
// "<InvAddress>1</InvAddress>"+
|
||||
// "<investMoney>10.0</investMoney>"+
|
||||
// "<investType>05</investType>"+
|
||||
// "<investRate>1</investRate>"+
|
||||
// "<time>2027-06-15</time>"+
|
||||
// "<parPgfsCode/>"+
|
||||
// "<affiliationName>51</affiliationName>"+
|
||||
// "<invCerTypeName>事业法人登记证</invCerTypeName>"+
|
||||
// "<zgbm_djjgCode/>"+
|
||||
// "<zgbm_djjgName/>"+
|
||||
// "<investName>55</investName>"+
|
||||
// "<affiliation>51</affiliation>"+
|
||||
// "<zgbm_frlxCode>12</zgbm_frlxCode>"+
|
||||
// "<invCurrency>人民币</invCurrency>"+
|
||||
// "<parZrfsCode/>"+
|
||||
// "<certificatetypeName>身份证</certificatetypeName>"+
|
||||
// "<zgbm_frlxName>事业法人</zgbm_frlxName>"+
|
||||
// "<invCurrencyCode>156</invCurrencyCode>"+
|
||||
// "<parPgfsName/>"+
|
||||
// "<investNatureCode/>"+
|
||||
// "<certificatecode/>"+
|
||||
// "<gsInvestorID>fc197aac3fa801421a75e1997b7aa1dc</gsInvestorID>"+
|
||||
// "<address>中国</address>"+
|
||||
// "<rmb>10.0</rmb>"+
|
||||
// "<parActConAm>0.0</parActConAm>"+
|
||||
// "<investTypeName>05</investTypeName>"+
|
||||
// "<addressCode>156</addressCode>"+
|
||||
// "<invCerTypeCode>61</invCerTypeCode>"+
|
||||
// "<investNature/>"+
|
||||
// "<certificatetype>01</certificatetype>"+
|
||||
// "</INFOR_INVESTOR>"+
|
||||
// "</ROOT>";
|
||||
// return EnpInfor;
|
||||
|
||||
|
||||
String result =
|
||||
"<?xml version=\"1.0\" encoding=\"utf-8\"?>"+
|
||||
"<ROOT>"+
|
||||
"<INFOR_MAIN>"+
|
||||
"<natrualrate>50</natrualrate>"+
|
||||
"<corporationname>天津阳下暖阳文化有限公司</corporationname>"+
|
||||
"<certificatefinancetypeName>身份证</certificatefinancetypeName>"+
|
||||
"<invCountryNameZj>缅甸</invCountryNameZj>"+
|
||||
"<webAddress/>"+
|
||||
"<appDepNameSw>天津市南开区市场和质量监督管</appDepNameSw>"+
|
||||
"<taxAgentPhone/>"+
|
||||
"<districtNameSw>南开区</districtNameSw>"+
|
||||
"<couIndustry>0111</couIndustry>"+
|
||||
"<certificatefinancecode>13052119890430140X</certificatefinancecode>"+
|
||||
"<workNameCode>90</workNameCode>"+
|
||||
"<institutionname>111</institutionname>"+
|
||||
"<singleTax>1</singleTax>"+
|
||||
"<workphone>11111111</workphone>"+
|
||||
"<regMoney>2.0</regMoney>"+
|
||||
"<appDepCode>111111111</appDepCode>"+
|
||||
"<product1Name/>"+
|
||||
"<financename>琪琪</financename>"+
|
||||
"<organizationCode/>"+
|
||||
"<regphone/>"+
|
||||
"<certificatecode>111111</certificatecode>"+
|
||||
"<isFtz>0</isFtz>"+
|
||||
"<gsCheckTime/>"+
|
||||
"<delegateName>阳下暖阳</delegateName>"+
|
||||
"<forEntName/>"+
|
||||
"<certificatetype>4</certificatetype>"+
|
||||
"<applypeopleAd/>"+
|
||||
"<revenuename>111</revenuename>"+
|
||||
"<certificaterevenuetype>01</certificaterevenuetype>"+
|
||||
"<appDepCodeSw>0006</appDepCodeSw>"+
|
||||
"<calculatetypeSw>11</calculatetypeSw>"+
|
||||
"<rundeadlineend>2018-02-28</rundeadlineend>"+
|
||||
"<districtNameZj>天津市南开区</districtNameZj>"+
|
||||
"<certificatefinancetype>01</certificatefinancetype>"+
|
||||
"<regAddress>111111</regAddress>"+
|
||||
"<UniSCID>91120000MA06A68T19</UniSCID>"+
|
||||
"<certificatetypeZj>C</certificatetypeZj>"+
|
||||
"<workNumber>1</workNumber>"+
|
||||
"<gsCreateTime>2018-02-08 17:39:37</gsCreateTime>"+
|
||||
"<gsCreateUserName>威奕达软件管理员</gsCreateUserName>"+
|
||||
"<calculatetype/>"+
|
||||
"<rundeadlinestart>2018-02-07</rundeadlinestart>"+
|
||||
"<accountingtype>01</accountingtype>"+
|
||||
"<financeemail/>"+
|
||||
"<moneyTypeCodeZS>156</moneyTypeCodeZS>"+
|
||||
"<certificatetypeSw>01</certificatetypeSw>"+
|
||||
"<regpostalcode>000000</regpostalcode>"+
|
||||
"<applypeople>111</applypeople>"+
|
||||
"<unittype>01</unittype>"+
|
||||
"<foreignrate>50</foreignrate>"+
|
||||
"<product2Name/>"+
|
||||
"<isopen>1</isopen>"+
|
||||
"<depType>B</depType>"+
|
||||
"<applypeoplectypeName>其它</applypeoplectypeName>"+
|
||||
"<copyNum>0.0</copyNum>"+
|
||||
"<companytypeName>外资企业</companytypeName>"+
|
||||
"<workAddress>111</workAddress>"+
|
||||
"<revenuephone>111111</revenuephone>"+
|
||||
"<accountingtypeName>企业会计制度</accountingtypeName>"+
|
||||
"<icNum>0</icNum>"+
|
||||
"<moneyTypeCode/>"+
|
||||
"<workpostalcode>111111</workpostalcode>"+
|
||||
"<foundDate>2018-02-07</foundDate>"+
|
||||
"<industry94>A0159</industry94>"+
|
||||
"<certificatetypeNameZj>其它</certificatetypeNameZj>"+
|
||||
"<industry02>A0114</industry02>"+
|
||||
"<regNem>120000400169869</regNem>"+
|
||||
"<financecellphone>13211111111</financecellphone>"+
|
||||
"<ftzRegType>1</ftzRegType>"+
|
||||
"<districtCodeZj>120104</districtCodeZj>"+
|
||||
"<certificaterevenuetypeName>身份证</certificaterevenuetypeName>"+
|
||||
"<jdxzdm>120104001</jdxzdm>"+
|
||||
"<gsCreateUserId>eee900e553ee8a3c5961340ddc39efa4</gsCreateUserId>"+
|
||||
"<cellphone>13211111111</cellphone>"+
|
||||
"<workName>其他批准证件类别</workName>"+
|
||||
"<taxAgentName/>"+
|
||||
"<appDepName>111111111</appDepName>"+
|
||||
"<adminDepName/>"+
|
||||
"<forEntAddress/>"+
|
||||
"<applypeoplectype>C</applypeoplectype>"+
|
||||
"<gsCheckUserName/>"+
|
||||
"<applypeoplephone/>"+
|
||||
"<countryrate>0</countryrate>"+
|
||||
"<moneyTypeNameZS>人民币</moneyTypeNameZS>"+
|
||||
"<invCountryCodeZj>104</invCountryCodeZj>"+
|
||||
"<industryClass/>"+
|
||||
"<districtName>南开区</districtName>"+
|
||||
"<couIndustryName>稻谷种植</couIndustryName>"+
|
||||
"<taxAgentTaxCode/>"+
|
||||
"<moneyTypeName/>"+
|
||||
"<revenueemail/>"+
|
||||
"<email/>"+
|
||||
"<certificatetypeNameSw>身份证</certificatetypeNameSw>"+
|
||||
"<isSmall/>"+
|
||||
"<applypeoplecellphone>13211111111</applypeoplecellphone>"+
|
||||
"<workarea>测试(依法须经批准的项目,经相关部门批准后方可开展经营活动)</workarea>"+
|
||||
"<certificaterevenuecode>452131199002034471</certificaterevenuecode>"+
|
||||
"<payid_institution/>"+
|
||||
"<foreignpeoplenum>0.0</foreignpeoplenum>"+
|
||||
"<applypeoplecid>111</applypeoplecid>"+
|
||||
"<economyType00>300</economyType00>"+
|
||||
"<adminDepCode/>"+
|
||||
"<mainWorkArea>测试</mainWorkArea>"+
|
||||
"<gsid>582766</gsid>"+
|
||||
"<product3Name/>"+
|
||||
"<mainRegAd>111</mainRegAd>"+
|
||||
"<invCountryCode>104</invCountryCode>"+
|
||||
"<taxAgentEmail/>"+
|
||||
"<invCountryName>缅甸</invCountryName>"+
|
||||
"<companytype>330</companytype>"+
|
||||
"<linkphone>13211111111</linkphone>"+
|
||||
"<jdxzmc>长虹街道</jdxzmc>"+
|
||||
"<economyType94>7</economyType94>"+
|
||||
"<districtCodeSw>10400</districtCodeSw>"+
|
||||
"<districtCode>120104</districtCode>"+
|
||||
"<financephone>13211111111</financephone>"+
|
||||
"<regtempid>6</regtempid>"+
|
||||
"<applypeoplepostcode>111111</applypeoplepostcode>"+
|
||||
"<revenuecellphone>13211111111</revenuecellphone>"+
|
||||
"<unittypeName>企业</unittypeName>"+
|
||||
"</INFOR_MAIN>"+
|
||||
"<INFOR_INVESTOR>"+
|
||||
"<InvCerNO>111111</InvCerNO>"+
|
||||
"<parZrfsName/>"+
|
||||
"<assignRate>0</assignRate>"+
|
||||
"<InvAddress/>"+
|
||||
"<investMoney>0.241217</investMoney>"+
|
||||
"<investType>05</investType>"+
|
||||
"<investRate>1</investRate>"+
|
||||
"<time/>"+
|
||||
"<parPgfsCode/>"+
|
||||
"<affiliationName>中央</affiliationName>"+
|
||||
"<invCerTypeName>其他</invCerTypeName>"+
|
||||
"<zgbm_djjgCode/>"+
|
||||
"<zgbm_djjgName/>"+
|
||||
"<investName>阳下暖阳</investName>"+
|
||||
"<affiliation>10</affiliation>"+
|
||||
"<zgbm_frlxCode>99</zgbm_frlxCode>"+
|
||||
"<invCurrency>人民币元</invCurrency>"+
|
||||
"<parZrfsCode/>"+
|
||||
"<certificatetypeName>身份证</certificatetypeName>"+
|
||||
"<zgbm_frlxName>其他投资者</zgbm_frlxName>"+
|
||||
"<invCurrencyCode>156</invCurrencyCode>"+
|
||||
"<parPgfsName/>"+
|
||||
"<investNatureCode>330</investNatureCode>"+
|
||||
"<certificatecode>142202199003020112</certificatecode>"+
|
||||
"<gsInvestorID>7000ef837f0000011a75e199351b4d7d</gsInvestorID>"+
|
||||
"<address>缅甸</address>"+
|
||||
"<rmb>0.0</rmb>"+
|
||||
"<parActConAm>0.0</parActConAm>"+
|
||||
"<investTypeName>资金</investTypeName>"+
|
||||
"<addressCode>104</addressCode>"+
|
||||
"<invCerTypeCode>9</invCerTypeCode>"+
|
||||
"<investNature>外资企业</investNature>"+
|
||||
"<certificatetype>01</certificatetype>"+
|
||||
"</INFOR_INVESTOR>"+
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 企业换照接口
|
||||
* @param uniSCID
|
||||
* @param Md5Code
|
||||
* @param ChangeLicInfor
|
||||
* @return
|
||||
*/
|
||||
private static Integer SpEnpChangeLic(String uniSCID, String Md5Code, String ChangeLicInfor,SwjService s){
|
||||
int result = s.spEnpChangeLic(uniSCID, Md5Code, ChangeLicInfor);
|
||||
return result;
|
||||
}
|
||||
//返回企业换照测试xml信息
|
||||
private static String getChangeLic(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>" +
|
||||
"<belongdept>120000</belongdept>" +
|
||||
"<zjCode>712809836</zjCode>" +
|
||||
"<changedate>2017-12-04</changedate>" +
|
||||
"<regOrgName>天津市市场和质量监督管理委员会</regOrgName>" +
|
||||
"<regno>120000000018500</regno>" +
|
||||
"<uniSCID>911200007128098369</uniSCID>" +
|
||||
"<entname>天津市森特投资发展集团有限公司</entname>" +
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 企业变更方法
|
||||
* @param uniSCID
|
||||
* @param regNO
|
||||
* @param Md5Code
|
||||
* @param EnpInforChange
|
||||
* @param s
|
||||
* @return
|
||||
*/
|
||||
private static Integer SpEnpChangeRev(String uniSCID,String regNO,String Md5Code,String EnpInforChange,SwjService s){
|
||||
int result = s.spEnpChangeRev(uniSCID, regNO, Md5Code, EnpInforChange);
|
||||
return result;
|
||||
}
|
||||
//返回企业变更测试xml
|
||||
public static String getEnpInforChange(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>"+
|
||||
"<ALTER_INFO_MAIN>"+
|
||||
"<apprDate>2017-12-29</apprDate>"+
|
||||
"<curUserName></curUserName>"+
|
||||
"<gsid>201383</gsid>"+
|
||||
"<entName>天津同利祥煤炭贸易有限公司</entName>"+
|
||||
"<regOrgName>市自贸区市场监管局</regOrgName>"+
|
||||
"<uniSCID>911201163007225665</uniSCID>"+
|
||||
"<curTime></curTime>"+
|
||||
"<regOrgCode>120118</regOrgCode>"+
|
||||
"<regNO>120116000252433</regNO>"+
|
||||
"</ALTER_INFO_MAIN>"+
|
||||
"<ALTER_INFO_BASE>"+
|
||||
"<altBe_streetName></altBe_streetName>"+
|
||||
"<altAf_streetCode>120116503</altAf_streetCode>"+
|
||||
"<altBe_districtName>滨海新区</altBe_districtName>"+
|
||||
"<altAf_districtCode>120116</altAf_districtCode>"+
|
||||
"<altAf_address>天津市滨海新区中心商务区响螺湾旷世国际大厦B座</altAf_address>"+
|
||||
"<altAf_operationSign>变更</altAf_operationSign>"+
|
||||
"<altAf_streetName>中心商务区</altAf_streetName>"+
|
||||
"<altAf_districtName>滨海新区</altAf_districtName>"+
|
||||
"<altBe_operationSign>迁入</altBe_operationSign>"+
|
||||
"<altBe_streetCode></altBe_streetCode>"+
|
||||
"<altBe_address>天津市滨海新区中心商务区响螺湾旷世国际大厦B座305-321</altBe_address>"+
|
||||
"<altBe_districtCode>120116</altBe_districtCode>"+
|
||||
"</ALTER_INFO_BASE>"+
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 企业注销接口
|
||||
* @param uniSCID
|
||||
* @param Md5Code
|
||||
* @param LogoutInfo
|
||||
* @param s
|
||||
* @return
|
||||
*/
|
||||
private static Integer SpEnpLogoutRev(String uniSCID,String Md5Code,String LogoutInfo,SwjService s){
|
||||
int result = s.spEnpLogoutRev(uniSCID,Md5Code,LogoutInfo);
|
||||
return result;
|
||||
}
|
||||
//返回企业注销接口测试xml
|
||||
private static String getLogoutInfo(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>" +
|
||||
"<belongdept>120104</belongdept>" +
|
||||
"<zjCode>MA05Q4AK1</zjCode>" +
|
||||
"<canDate>2017-12-15</canDate>" +
|
||||
"<entName>常驻代表机构注销数据测试</entName>" +
|
||||
"<regOrgName>天津市南开区市场和质量监督管理局</regOrgName>" +
|
||||
"<regno>120000500008987</regno>" +
|
||||
"<uniSCID>91120000MA05Q4AK1Q</uniSCID>" +
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 个体设立接口
|
||||
* @param uniSCID
|
||||
* @param Md5Code
|
||||
* @param GtInfor
|
||||
* @param s
|
||||
* @return
|
||||
*/
|
||||
private static Integer spGtInforRev(String uniSCID,String Md5Code,String GtInfor,SwjService s){
|
||||
int result = s.spGtInforRev(uniSCID,Md5Code,GtInfor);
|
||||
return result;
|
||||
}
|
||||
//返回个体设立测试xml
|
||||
private static String getGtInfor(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>" +
|
||||
"<INFOR_GT_MAIN>" +
|
||||
"<EstDate>2017-02-07</EstDate>" +
|
||||
"<IndustryCo>5229</IndustryCo>" +
|
||||
"<RegState>1</RegState>" +
|
||||
"<TraName>天津策士食品经营中心</TraName>" +
|
||||
"<RegOrg>120101</RegOrg>" +
|
||||
"<OpLoc>1111111</OpLoc>" +
|
||||
"<CompForm>1</CompForm>" +
|
||||
"<EmpNum>2</EmpNum>" +
|
||||
"<streetName>劝业场街道</streetName>" +
|
||||
"<UniSCID>92120101MA05K8JB3T</UniSCID>" +
|
||||
"<streetCode>120101001</streetCode>" +
|
||||
"<PostalCode>1111</PostalCode>" +
|
||||
"<RegNO>120101600194863</RegNO>" +
|
||||
"<OpLocDistrict>120101</OpLocDistrict>" +
|
||||
"<forEntName></forEntName>" +
|
||||
"<ApprDate>2017-02-07</ApprDate>" +
|
||||
"<EntType>9500</EntType>" +
|
||||
"<Tel>111</Tel>" +
|
||||
"<OpScope>111111(依法须经批准的项目,经相关部门批准后方可开展经营活动)</OpScope>" +
|
||||
"<NotNO></NotNO>" +
|
||||
"<forEntAddress></forEntAddress>" +
|
||||
"</INFOR_GT_MAIN>" +
|
||||
"<INFOR_GT_INVESTOR>" +
|
||||
"<CerType>4</CerType>" +
|
||||
"<Name>这是</Name>" +
|
||||
"<PostalCode>111111</PostalCode>" +
|
||||
"<CerNO>1</CerNO>" +
|
||||
"<Email></Email>" +
|
||||
"<MobTel></MobTel>" +
|
||||
"<Dom>123</Dom>" +
|
||||
"<Tel>111</Tel>" +
|
||||
"</INFOR_GT_INVESTOR>" +
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 个体变更接口
|
||||
* @param uniSCID
|
||||
* @param regNO
|
||||
* @param Md5Code
|
||||
* @param GtInforChange
|
||||
* @param s
|
||||
* @return
|
||||
*/
|
||||
private static Integer SpGtChangeRev(String uniSCID,String regNO,String Md5Code,String GtInforChange,SwjService s){
|
||||
int result = s.spGtChangeRev(uniSCID,regNO,Md5Code,GtInforChange);
|
||||
return result;
|
||||
}
|
||||
//返回个体变更测试xml
|
||||
private static String getGtInforChange(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>" +
|
||||
"<ALTER_INFO_GT_MAIN>" +
|
||||
"<apprDate>2017-06-05</apprDate>" +
|
||||
"<regOrgName>市自贸区市场监管局</regOrgName>" +
|
||||
"<uniSCID>92120118MA05Q41B0F</uniSCID>" +
|
||||
"<regOrgCode>120118</regOrgCode>" +
|
||||
"<regNO>120118600012684</regNO>" +
|
||||
"</ALTER_INFO_GT_MAIN>" +
|
||||
"<ALTER_INFO_GT_BASE>" +
|
||||
"<AltItem>10</AltItem>" +
|
||||
"<AltDate>2017-06-05</AltDate>" +
|
||||
"<AltAf>劳务服务;(依法须经批准的项目,经相关部门批准后方可开展经营活动)</AltAf>" +
|
||||
"<AltBe>劳务服务;</AltBe>" +
|
||||
"<NotNO>( 自贸 )登记个体变字[2017]第00000378号</NotNO>" +
|
||||
"</ALTER_INFO_GT_BASE>" +
|
||||
"<ALTER_INFO_GT_BASE>" +
|
||||
"<AltItem>10</AltItem>" +
|
||||
"<AltDate>2017-06-05</AltDate>" +
|
||||
"<AltAf>劳务服务;(依法须经批准的项目,经相关部门批准后方可开展经营活动)</AltAf>" +
|
||||
"<AltBe>劳务服务;</AltBe>" +
|
||||
"<NotNO>( 自贸 )登记个体变字[2017]第00000378号</NotNO>" +
|
||||
"</ALTER_INFO_GT_BASE>" +
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 个体注销接口
|
||||
* @param uniSCID
|
||||
* @param Md5Code
|
||||
* @param GtLogoutInfo
|
||||
* @param s
|
||||
* @return
|
||||
*/
|
||||
private static Integer SpGtLogoutRev(String uniSCID,String Md5Code,String GtLogoutInfo,SwjService s){
|
||||
int result = s.spGtLogoutRev(uniSCID, Md5Code, GtLogoutInfo);
|
||||
return result;
|
||||
}
|
||||
//返回个体注销测试xml
|
||||
private static String getGtLogoutRev(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>" +
|
||||
"<uniSCID>120000</uniSCID>" +
|
||||
"<CanRegRea>712809836</CanRegRea>" +
|
||||
"<TraName>北京市开县</TraName>" +
|
||||
"<RegState>2</RegState>" +
|
||||
"<ApprDate>2017-06-05 12:23:12</ApprDate>" +
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 企业设立基本信息
|
||||
* @param GsEnpid
|
||||
* @param Md5Code
|
||||
* @param mainInfo
|
||||
* @param s
|
||||
* @return
|
||||
*/
|
||||
private static Integer spBeforeCreateRev(String GsEnpid, String Md5Code, String mainInfo,SwjService s){
|
||||
int result = s.spBeforeCreateRev(GsEnpid,Md5Code,mainInfo);
|
||||
return result;
|
||||
}
|
||||
private static String getMainInfo(){
|
||||
String result = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
|
||||
"<ROOT>" +
|
||||
"<corporationname>120000</corporationname>" +
|
||||
"<companytypeName>712809836</companytypeName>" +
|
||||
"<couIndustryName>北京市开县</couIndustryName>" +
|
||||
"<type>2</type>" +
|
||||
"<regtempid>www</regtempid>" +
|
||||
"<delegateName>王老者</delegateName>" +
|
||||
"<applypeople>渥太维</applypeople>" +
|
||||
"<applypeoplecid>詹姆斯</applypeoplecid>" +
|
||||
"<applypeoplephone>18925059838</applypeoplephone>" +
|
||||
"<districtName>太极股份</districtName>" +
|
||||
"<gsCreateUserId>1234</gsCreateUserId>" +
|
||||
"</ROOT>";
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,323 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.JAXBElement;
|
||||
import javax.xml.bind.annotation.XmlElementDecl;
|
||||
import javax.xml.bind.annotation.XmlRegistry;
|
||||
import javax.xml.namespace.QName;
|
||||
|
||||
|
||||
/**
|
||||
* This object contains factory methods for each
|
||||
* Java content interface and Java element interface
|
||||
* generated in the com.taiji.swj.service package.
|
||||
* <p>An ObjectFactory allows you to programatically
|
||||
* construct new instances of the Java representation
|
||||
* for XML content. The Java representation of XML
|
||||
* content can consist of schema derived interfaces
|
||||
* and classes representing the binding of schema
|
||||
* type definitions, element declarations and model
|
||||
* groups. Factory methods for each of these are
|
||||
* provided in this class.
|
||||
*
|
||||
*/
|
||||
@XmlRegistry
|
||||
public class ObjectFactory {
|
||||
|
||||
private final static QName _SpBeforeCreateRev_QNAME = new QName("http://service.swj.taiji.com/", "SpBeforeCreateRev");
|
||||
private final static QName _SpBeforeCreateRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpBeforeCreateRevResponse");
|
||||
private final static QName _SpEnpChangeLic_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpChangeLic");
|
||||
private final static QName _SpEnpChangeLicResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpChangeLicResponse");
|
||||
private final static QName _SpEnpChangeRev_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpChangeRev");
|
||||
private final static QName _SpEnpChangeRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpChangeRevResponse");
|
||||
private final static QName _SpEnpInforRev_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpInforRev");
|
||||
private final static QName _SpEnpInforRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpInforRevResponse");
|
||||
private final static QName _SpEnpLogoutRev_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpLogoutRev");
|
||||
private final static QName _SpEnpLogoutRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpEnpLogoutRevResponse");
|
||||
private final static QName _SpGtChangeRev_QNAME = new QName("http://service.swj.taiji.com/", "SpGtChangeRev");
|
||||
private final static QName _SpGtChangeRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpGtChangeRevResponse");
|
||||
private final static QName _SpGtInforRev_QNAME = new QName("http://service.swj.taiji.com/", "SpGtInforRev");
|
||||
private final static QName _SpGtInforRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpGtInforRevResponse");
|
||||
private final static QName _SpGtLogoutRev_QNAME = new QName("http://service.swj.taiji.com/", "SpGtLogoutRev");
|
||||
private final static QName _SpGtLogoutRevResponse_QNAME = new QName("http://service.swj.taiji.com/", "SpGtLogoutRevResponse");
|
||||
|
||||
/**
|
||||
* Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: com.taiji.swj.service
|
||||
*
|
||||
*/
|
||||
public ObjectFactory() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpBeforeCreateRev }
|
||||
*
|
||||
*/
|
||||
public SpBeforeCreateRev createSpBeforeCreateRev() {
|
||||
return new SpBeforeCreateRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpBeforeCreateRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpBeforeCreateRevResponse createSpBeforeCreateRevResponse() {
|
||||
return new SpBeforeCreateRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpChangeLic }
|
||||
*
|
||||
*/
|
||||
public SpEnpChangeLic createSpEnpChangeLic() {
|
||||
return new SpEnpChangeLic();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpChangeLicResponse }
|
||||
*
|
||||
*/
|
||||
public SpEnpChangeLicResponse createSpEnpChangeLicResponse() {
|
||||
return new SpEnpChangeLicResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpChangeRev }
|
||||
*
|
||||
*/
|
||||
public SpEnpChangeRev createSpEnpChangeRev() {
|
||||
return new SpEnpChangeRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpChangeRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpEnpChangeRevResponse createSpEnpChangeRevResponse() {
|
||||
return new SpEnpChangeRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpInforRev }
|
||||
*
|
||||
*/
|
||||
public SpEnpInforRev createSpEnpInforRev() {
|
||||
return new SpEnpInforRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpInforRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpEnpInforRevResponse createSpEnpInforRevResponse() {
|
||||
return new SpEnpInforRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpLogoutRev }
|
||||
*
|
||||
*/
|
||||
public SpEnpLogoutRev createSpEnpLogoutRev() {
|
||||
return new SpEnpLogoutRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpEnpLogoutRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpEnpLogoutRevResponse createSpEnpLogoutRevResponse() {
|
||||
return new SpEnpLogoutRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpGtChangeRev }
|
||||
*
|
||||
*/
|
||||
public SpGtChangeRev createSpGtChangeRev() {
|
||||
return new SpGtChangeRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpGtChangeRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpGtChangeRevResponse createSpGtChangeRevResponse() {
|
||||
return new SpGtChangeRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpGtInforRev }
|
||||
*
|
||||
*/
|
||||
public SpGtInforRev createSpGtInforRev() {
|
||||
return new SpGtInforRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpGtInforRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpGtInforRevResponse createSpGtInforRevResponse() {
|
||||
return new SpGtInforRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpGtLogoutRev }
|
||||
*
|
||||
*/
|
||||
public SpGtLogoutRev createSpGtLogoutRev() {
|
||||
return new SpGtLogoutRev();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link SpGtLogoutRevResponse }
|
||||
*
|
||||
*/
|
||||
public SpGtLogoutRevResponse createSpGtLogoutRevResponse() {
|
||||
return new SpGtLogoutRevResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpBeforeCreateRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpBeforeCreateRev")
|
||||
public JAXBElement<SpBeforeCreateRev> createSpBeforeCreateRev(SpBeforeCreateRev value) {
|
||||
return new JAXBElement<SpBeforeCreateRev>(_SpBeforeCreateRev_QNAME, SpBeforeCreateRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpBeforeCreateRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpBeforeCreateRevResponse")
|
||||
public JAXBElement<SpBeforeCreateRevResponse> createSpBeforeCreateRevResponse(SpBeforeCreateRevResponse value) {
|
||||
return new JAXBElement<SpBeforeCreateRevResponse>(_SpBeforeCreateRevResponse_QNAME, SpBeforeCreateRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpChangeLic }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpChangeLic")
|
||||
public JAXBElement<SpEnpChangeLic> createSpEnpChangeLic(SpEnpChangeLic value) {
|
||||
return new JAXBElement<SpEnpChangeLic>(_SpEnpChangeLic_QNAME, SpEnpChangeLic.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpChangeLicResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpChangeLicResponse")
|
||||
public JAXBElement<SpEnpChangeLicResponse> createSpEnpChangeLicResponse(SpEnpChangeLicResponse value) {
|
||||
return new JAXBElement<SpEnpChangeLicResponse>(_SpEnpChangeLicResponse_QNAME, SpEnpChangeLicResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpChangeRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpChangeRev")
|
||||
public JAXBElement<SpEnpChangeRev> createSpEnpChangeRev(SpEnpChangeRev value) {
|
||||
return new JAXBElement<SpEnpChangeRev>(_SpEnpChangeRev_QNAME, SpEnpChangeRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpChangeRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpChangeRevResponse")
|
||||
public JAXBElement<SpEnpChangeRevResponse> createSpEnpChangeRevResponse(SpEnpChangeRevResponse value) {
|
||||
return new JAXBElement<SpEnpChangeRevResponse>(_SpEnpChangeRevResponse_QNAME, SpEnpChangeRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpInforRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpInforRev")
|
||||
public JAXBElement<SpEnpInforRev> createSpEnpInforRev(SpEnpInforRev value) {
|
||||
return new JAXBElement<SpEnpInforRev>(_SpEnpInforRev_QNAME, SpEnpInforRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpInforRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpInforRevResponse")
|
||||
public JAXBElement<SpEnpInforRevResponse> createSpEnpInforRevResponse(SpEnpInforRevResponse value) {
|
||||
return new JAXBElement<SpEnpInforRevResponse>(_SpEnpInforRevResponse_QNAME, SpEnpInforRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpLogoutRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpLogoutRev")
|
||||
public JAXBElement<SpEnpLogoutRev> createSpEnpLogoutRev(SpEnpLogoutRev value) {
|
||||
return new JAXBElement<SpEnpLogoutRev>(_SpEnpLogoutRev_QNAME, SpEnpLogoutRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpEnpLogoutRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpEnpLogoutRevResponse")
|
||||
public JAXBElement<SpEnpLogoutRevResponse> createSpEnpLogoutRevResponse(SpEnpLogoutRevResponse value) {
|
||||
return new JAXBElement<SpEnpLogoutRevResponse>(_SpEnpLogoutRevResponse_QNAME, SpEnpLogoutRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpGtChangeRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpGtChangeRev")
|
||||
public JAXBElement<SpGtChangeRev> createSpGtChangeRev(SpGtChangeRev value) {
|
||||
return new JAXBElement<SpGtChangeRev>(_SpGtChangeRev_QNAME, SpGtChangeRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpGtChangeRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpGtChangeRevResponse")
|
||||
public JAXBElement<SpGtChangeRevResponse> createSpGtChangeRevResponse(SpGtChangeRevResponse value) {
|
||||
return new JAXBElement<SpGtChangeRevResponse>(_SpGtChangeRevResponse_QNAME, SpGtChangeRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpGtInforRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpGtInforRev")
|
||||
public JAXBElement<SpGtInforRev> createSpGtInforRev(SpGtInforRev value) {
|
||||
return new JAXBElement<SpGtInforRev>(_SpGtInforRev_QNAME, SpGtInforRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpGtInforRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpGtInforRevResponse")
|
||||
public JAXBElement<SpGtInforRevResponse> createSpGtInforRevResponse(SpGtInforRevResponse value) {
|
||||
return new JAXBElement<SpGtInforRevResponse>(_SpGtInforRevResponse_QNAME, SpGtInforRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpGtLogoutRev }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpGtLogoutRev")
|
||||
public JAXBElement<SpGtLogoutRev> createSpGtLogoutRev(SpGtLogoutRev value) {
|
||||
return new JAXBElement<SpGtLogoutRev>(_SpGtLogoutRev_QNAME, SpGtLogoutRev.class, null, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create an instance of {@link JAXBElement }{@code <}{@link SpGtLogoutRevResponse }{@code >}}
|
||||
*
|
||||
*/
|
||||
@XmlElementDecl(namespace = "http://service.swj.taiji.com/", name = "SpGtLogoutRevResponse")
|
||||
public JAXBElement<SpGtLogoutRevResponse> createSpGtLogoutRevResponse(SpGtLogoutRevResponse value) {
|
||||
return new JAXBElement<SpGtLogoutRevResponse>(_SpGtLogoutRevResponse_QNAME, SpGtLogoutRevResponse.class, null, value);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpBeforeCreateRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpBeforeCreateRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpBeforeCreateRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2"
|
||||
})
|
||||
public class SpBeforeCreateRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpBeforeCreateRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpBeforeCreateRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpBeforeCreateRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpBeforeCreateRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpChangeLic complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpChangeLic">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpChangeLic", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2"
|
||||
})
|
||||
public class SpEnpChangeLic {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpChangeLicResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpChangeLicResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpChangeLicResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpEnpChangeLicResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpChangeRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpChangeRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpChangeRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2",
|
||||
"arg3"
|
||||
})
|
||||
public class SpEnpChangeRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
protected String arg3;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg3���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg3() {
|
||||
return arg3;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg3���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg3(String value) {
|
||||
this.arg3 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpChangeRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpChangeRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpChangeRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpEnpChangeRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpInforRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpInforRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpInforRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2"
|
||||
})
|
||||
public class SpEnpInforRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpInforRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpInforRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpInforRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpEnpInforRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpLogoutRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpLogoutRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpLogoutRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2"
|
||||
})
|
||||
public class SpEnpLogoutRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpEnpLogoutRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpEnpLogoutRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpEnpLogoutRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpEnpLogoutRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,141 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpGtChangeRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpGtChangeRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg3" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpGtChangeRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2",
|
||||
"arg3"
|
||||
})
|
||||
public class SpGtChangeRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
protected String arg3;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg3���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg3() {
|
||||
return arg3;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg3���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg3(String value) {
|
||||
this.arg3 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpGtChangeRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpGtChangeRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpGtChangeRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpGtChangeRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpGtInforRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpGtInforRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpGtInforRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2"
|
||||
})
|
||||
public class SpGtInforRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpGtInforRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpGtInforRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpGtInforRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpGtInforRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpGtLogoutRev complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpGtLogoutRev">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="arg0" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg1" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* <element name="arg2" type="{http://www.w3.org/2001/XMLSchema}string" minOccurs="0"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpGtLogoutRev", propOrder = {
|
||||
"arg0",
|
||||
"arg1",
|
||||
"arg2"
|
||||
})
|
||||
public class SpGtLogoutRev {
|
||||
|
||||
protected String arg0;
|
||||
protected String arg1;
|
||||
protected String arg2;
|
||||
|
||||
/**
|
||||
* ��ȡarg0���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg0() {
|
||||
return arg0;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg0���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg0(String value) {
|
||||
this.arg0 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg1���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg1() {
|
||||
return arg1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg1���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg1(String value) {
|
||||
this.arg1 = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* ��ȡarg2���Ե�ֵ��
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public String getArg2() {
|
||||
return arg2;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����arg2���Ե�ֵ��
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link String }
|
||||
*
|
||||
*/
|
||||
public void setArg2(String value) {
|
||||
this.arg2 = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.xml.bind.annotation.XmlAccessType;
|
||||
import javax.xml.bind.annotation.XmlAccessorType;
|
||||
import javax.xml.bind.annotation.XmlElement;
|
||||
import javax.xml.bind.annotation.XmlType;
|
||||
|
||||
|
||||
/**
|
||||
* <p>SpGtLogoutRevResponse complex type�� Java �ࡣ
|
||||
*
|
||||
* <p>����ģʽƬ��ָ�����ڴ����е�Ԥ�����ݡ�
|
||||
*
|
||||
* <pre>
|
||||
* <complexType name="SpGtLogoutRevResponse">
|
||||
* <complexContent>
|
||||
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||
* <sequence>
|
||||
* <element name="return" type="{http://www.w3.org/2001/XMLSchema}int"/>
|
||||
* </sequence>
|
||||
* </restriction>
|
||||
* </complexContent>
|
||||
* </complexType>
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
*/
|
||||
@XmlAccessorType(XmlAccessType.FIELD)
|
||||
@XmlType(name = "SpGtLogoutRevResponse", propOrder = {
|
||||
"_return"
|
||||
})
|
||||
public class SpGtLogoutRevResponse {
|
||||
|
||||
@XmlElement(name = "return")
|
||||
protected int _return;
|
||||
|
||||
/**
|
||||
* ��ȡreturn���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public int getReturn() {
|
||||
return _return;
|
||||
}
|
||||
|
||||
/**
|
||||
* ����return���Ե�ֵ��
|
||||
*
|
||||
*/
|
||||
public void setReturn(int value) {
|
||||
this._return = value;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
package taiji.swj.service;
|
||||
|
||||
import javax.jws.WebMethod;
|
||||
import javax.jws.WebParam;
|
||||
import javax.jws.WebResult;
|
||||
import javax.jws.WebService;
|
||||
import javax.xml.bind.annotation.XmlSeeAlso;
|
||||
import javax.xml.ws.RequestWrapper;
|
||||
import javax.xml.ws.ResponseWrapper;
|
||||
|
||||
/**
|
||||
* This class was generated by Apache CXF 3.1.8
|
||||
* 2018-02-07T14:49:33.695+08:00
|
||||
* Generated source version: 3.1.8
|
||||
*
|
||||
*/
|
||||
@WebService(targetNamespace = "http://service.swj.taiji.com/", name = "SwjService")
|
||||
@XmlSeeAlso({ObjectFactory.class})
|
||||
public interface SwjService {
|
||||
|
||||
@WebMethod(operationName = "SpBeforeCreateRev")
|
||||
@RequestWrapper(localName = "SpBeforeCreateRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpBeforeCreateRev")
|
||||
@ResponseWrapper(localName = "SpBeforeCreateRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpBeforeCreateRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spBeforeCreateRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpEnpLogoutRev")
|
||||
@RequestWrapper(localName = "SpEnpLogoutRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpLogoutRev")
|
||||
@ResponseWrapper(localName = "SpEnpLogoutRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpLogoutRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spEnpLogoutRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpGtLogoutRev")
|
||||
@RequestWrapper(localName = "SpGtLogoutRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpGtLogoutRev")
|
||||
@ResponseWrapper(localName = "SpGtLogoutRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpGtLogoutRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spGtLogoutRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpEnpInforRev")
|
||||
@RequestWrapper(localName = "SpEnpInforRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpInforRev")
|
||||
@ResponseWrapper(localName = "SpEnpInforRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpInforRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spEnpInforRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpGtInforRev")
|
||||
@RequestWrapper(localName = "SpGtInforRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpGtInforRev")
|
||||
@ResponseWrapper(localName = "SpGtInforRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpGtInforRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spGtInforRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpEnpChangeLic")
|
||||
@RequestWrapper(localName = "SpEnpChangeLic", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpChangeLic")
|
||||
@ResponseWrapper(localName = "SpEnpChangeLicResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpChangeLicResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spEnpChangeLic(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpGtChangeRev")
|
||||
@RequestWrapper(localName = "SpGtChangeRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpGtChangeRev")
|
||||
@ResponseWrapper(localName = "SpGtChangeRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpGtChangeRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spGtChangeRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2,
|
||||
@WebParam(name = "arg3", targetNamespace = "")
|
||||
java.lang.String arg3
|
||||
);
|
||||
|
||||
@WebMethod(operationName = "SpEnpChangeRev")
|
||||
@RequestWrapper(localName = "SpEnpChangeRev", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpChangeRev")
|
||||
@ResponseWrapper(localName = "SpEnpChangeRevResponse", targetNamespace = "http://service.swj.taiji.com/", className = "com.taiji.swj.service.SpEnpChangeRevResponse")
|
||||
@WebResult(name = "return", targetNamespace = "")
|
||||
public int spEnpChangeRev(
|
||||
@WebParam(name = "arg0", targetNamespace = "")
|
||||
java.lang.String arg0,
|
||||
@WebParam(name = "arg1", targetNamespace = "")
|
||||
java.lang.String arg1,
|
||||
@WebParam(name = "arg2", targetNamespace = "")
|
||||
java.lang.String arg2,
|
||||
@WebParam(name = "arg3", targetNamespace = "")
|
||||
java.lang.String arg3
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package taiji.swj.service.impl;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import javax.xml.namespace.QName;
|
||||
import javax.xml.ws.WebEndpoint;
|
||||
import javax.xml.ws.WebServiceClient;
|
||||
import javax.xml.ws.WebServiceFeature;
|
||||
import taiji.swj.service.SwjService;
|
||||
import javax.xml.ws.Service;
|
||||
|
||||
/**
|
||||
* This class was generated by Apache CXF 3.1.8
|
||||
* 2018-02-07T14:49:33.845+08:00
|
||||
* Generated source version: 3.1.8
|
||||
*
|
||||
*/
|
||||
@WebServiceClient(name = "SwjServiceImplService",
|
||||
wsdlLocation = "http://localhost:8080/approval/service/gscService?wsdl",
|
||||
targetNamespace = "http://impl.service.swj.taiji.com/")
|
||||
public class SwjServiceImplService extends Service {
|
||||
|
||||
public final static URL WSDL_LOCATION;
|
||||
|
||||
public final static QName SERVICE = new QName("http://impl.service.swj.taiji.com/", "SwjServiceImplService");
|
||||
public final static QName SwjServiceImplPort = new QName("http://impl.service.swj.taiji.com/", "SwjServiceImplPort");
|
||||
static {
|
||||
URL url = null;
|
||||
try {
|
||||
url = new URL("http://localhost:8080/approval/service/gscService?wsdl");
|
||||
} catch (MalformedURLException e) {
|
||||
java.util.logging.Logger.getLogger(SwjServiceImplService.class.getName())
|
||||
.log(java.util.logging.Level.INFO,
|
||||
"Can not initialize the default wsdl from {0}", "http://localhost:8080/approval/service/gscService?wsdl");
|
||||
}
|
||||
WSDL_LOCATION = url;
|
||||
}
|
||||
|
||||
public SwjServiceImplService(URL wsdlLocation) {
|
||||
super(wsdlLocation, SERVICE);
|
||||
}
|
||||
|
||||
public SwjServiceImplService(URL wsdlLocation, QName serviceName) {
|
||||
super(wsdlLocation, serviceName);
|
||||
}
|
||||
|
||||
public SwjServiceImplService() {
|
||||
super(WSDL_LOCATION, SERVICE);
|
||||
}
|
||||
|
||||
public SwjServiceImplService(WebServiceFeature ... features) {
|
||||
super(WSDL_LOCATION, SERVICE, features);
|
||||
}
|
||||
|
||||
public SwjServiceImplService(URL wsdlLocation, WebServiceFeature ... features) {
|
||||
super(wsdlLocation, SERVICE, features);
|
||||
}
|
||||
|
||||
public SwjServiceImplService(URL wsdlLocation, QName serviceName, WebServiceFeature ... features) {
|
||||
super(wsdlLocation, serviceName, features);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @return
|
||||
* returns SwjService
|
||||
*/
|
||||
@WebEndpoint(name = "SwjServiceImplPort")
|
||||
public SwjService getSwjServiceImplPort() {
|
||||
return super.getPort(SwjServiceImplPort, SwjService.class);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param features
|
||||
* A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy. Supported features not in the <code>features</code> parameter will have their default values.
|
||||
* @return
|
||||
* returns SwjService
|
||||
*/
|
||||
@WebEndpoint(name = "SwjServiceImplPort")
|
||||
public SwjService getSwjServiceImplPort(WebServiceFeature... features) {
|
||||
return super.getPort(SwjServiceImplPort, SwjService.class, features);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
@javax.xml.bind.annotation.XmlSchema(namespace = "http://service.swj.taiji.com/")
|
||||
package taiji.swj.service;
|
||||
@@ -0,0 +1,81 @@
|
||||
package com.zzc.app.entity;
|
||||
|
||||
import com.zzc.web.system.pojo.base.TSUser;
|
||||
|
||||
public class AppTSUser {
|
||||
private String enterpriseName;
|
||||
private String enterpriseCode;
|
||||
private String enterpriseArea;
|
||||
private String enterpriseAddress;
|
||||
private String enterpriseType;
|
||||
private String role;
|
||||
|
||||
private TSUser user;
|
||||
// 登录提示
|
||||
private String tip;
|
||||
|
||||
public String getEnterpriseName() {
|
||||
return enterpriseName;
|
||||
}
|
||||
|
||||
public void setEnterpriseName(String enterpriseName) {
|
||||
this.enterpriseName = enterpriseName;
|
||||
}
|
||||
|
||||
public String getEnterpriseCode() {
|
||||
return enterpriseCode;
|
||||
}
|
||||
|
||||
public void setEnterpriseCode(String enterpriseCode) {
|
||||
this.enterpriseCode = enterpriseCode;
|
||||
}
|
||||
|
||||
public String getEnterpriseArea() {
|
||||
return enterpriseArea;
|
||||
}
|
||||
|
||||
public void setEnterpriseArea(String enterpriseArea) {
|
||||
this.enterpriseArea = enterpriseArea;
|
||||
}
|
||||
|
||||
public String getEnterpriseAddress() {
|
||||
return enterpriseAddress;
|
||||
}
|
||||
|
||||
public void setEnterpriseAddress(String enterpriseAddress) {
|
||||
this.enterpriseAddress = enterpriseAddress;
|
||||
}
|
||||
|
||||
public String getEnterpriseType() {
|
||||
return enterpriseType;
|
||||
}
|
||||
|
||||
public void setEnterpriseType(String enterpriseType) {
|
||||
this.enterpriseType = enterpriseType;
|
||||
}
|
||||
|
||||
public TSUser getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(TSUser user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public String getRole() {
|
||||
return role;
|
||||
}
|
||||
|
||||
public void setRole(String role) {
|
||||
this.role = role;
|
||||
}
|
||||
|
||||
public String getTip() {
|
||||
return tip;
|
||||
}
|
||||
|
||||
public void setTip(String tip) {
|
||||
this.tip = tip;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.zzc.app.entity;
|
||||
|
||||
|
||||
public class EnterpriseInfo {
|
||||
private String id;
|
||||
private String enterpriseName;
|
||||
private String enterpriseCode;
|
||||
private String enterpriseArea;
|
||||
private String enterpriseAddress;
|
||||
private String enterpriseType;
|
||||
private String enterpriseScore;
|
||||
|
||||
private String telephone;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getEnterpriseName() {
|
||||
return enterpriseName;
|
||||
}
|
||||
|
||||
public void setEnterpriseName(String enterpriseName) {
|
||||
this.enterpriseName = enterpriseName;
|
||||
}
|
||||
|
||||
public String getEnterpriseCode() {
|
||||
return enterpriseCode;
|
||||
}
|
||||
|
||||
public void setEnterpriseCode(String enterpriseCode) {
|
||||
this.enterpriseCode = enterpriseCode;
|
||||
}
|
||||
|
||||
public String getEnterpriseArea() {
|
||||
return enterpriseArea;
|
||||
}
|
||||
|
||||
public void setEnterpriseArea(String enterpriseArea) {
|
||||
this.enterpriseArea = enterpriseArea;
|
||||
}
|
||||
|
||||
public String getEnterpriseAddress() {
|
||||
return enterpriseAddress;
|
||||
}
|
||||
|
||||
public void setEnterpriseAddress(String enterpriseAddress) {
|
||||
this.enterpriseAddress = enterpriseAddress;
|
||||
}
|
||||
|
||||
public String getEnterpriseType() {
|
||||
return enterpriseType;
|
||||
}
|
||||
|
||||
public void setEnterpriseType(String enterpriseType) {
|
||||
this.enterpriseType = enterpriseType;
|
||||
}
|
||||
|
||||
public String getEnterpriseScore() {
|
||||
return enterpriseScore;
|
||||
}
|
||||
|
||||
public void setEnterpriseScore(String enterpriseScore) {
|
||||
this.enterpriseScore = enterpriseScore;
|
||||
}
|
||||
|
||||
public String getTelephone() {
|
||||
return telephone;
|
||||
}
|
||||
|
||||
public void setTelephone(String telephone) {
|
||||
this.telephone = telephone;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,108 @@
|
||||
package com.zzc.app.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Created by CC on 2017/1/12. 企业信息实体类
|
||||
*/
|
||||
public class EnterpriseInfoEntity implements Serializable {
|
||||
private int imgHotel;// 图片
|
||||
private String name;// 企业名字
|
||||
private String level;// 企业级别
|
||||
private String address;// 企业地址
|
||||
private int imgCreditLevel; // 信用级别图片
|
||||
private String creditLevelDescription;// 信用度描述
|
||||
private int creditNum;// 信用值
|
||||
// 诚信积分
|
||||
private int score;
|
||||
|
||||
private String telephone;
|
||||
|
||||
public EnterpriseInfoEntity() {
|
||||
}
|
||||
|
||||
public EnterpriseInfoEntity(int imgHotel, String name, String level,
|
||||
String address, int imgCreditLevel, String creditLevelDescription,
|
||||
int creditNum) {
|
||||
this.imgHotel = imgHotel;
|
||||
this.name = name;
|
||||
this.level = level;
|
||||
this.address = address;
|
||||
this.imgCreditLevel = imgCreditLevel;
|
||||
this.creditLevelDescription = creditLevelDescription;
|
||||
this.creditNum = creditNum;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getLevel() {
|
||||
return level;
|
||||
}
|
||||
|
||||
public void setLevel(String level) {
|
||||
this.level = level;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public int getImgHotel() {
|
||||
return imgHotel;
|
||||
}
|
||||
|
||||
public void setImgHotel(int imgHotel) {
|
||||
this.imgHotel = imgHotel;
|
||||
}
|
||||
|
||||
public int getImgCreditLevel() {
|
||||
return imgCreditLevel;
|
||||
}
|
||||
|
||||
public void setImgCreditLevel(int imgCreditLevel) {
|
||||
this.imgCreditLevel = imgCreditLevel;
|
||||
}
|
||||
|
||||
public String getCreditLevelDescription() {
|
||||
return creditLevelDescription;
|
||||
}
|
||||
|
||||
public void setCreditLevelDescription(String creditLevelDescription) {
|
||||
this.creditLevelDescription = creditLevelDescription;
|
||||
}
|
||||
|
||||
public int getCreditNum() {
|
||||
return creditNum;
|
||||
}
|
||||
|
||||
public void setCreditNum(int creditNum) {
|
||||
this.creditNum = creditNum;
|
||||
}
|
||||
|
||||
public int getScore() {
|
||||
return score;
|
||||
}
|
||||
|
||||
public void setScore(int score) {
|
||||
this.score = score;
|
||||
}
|
||||
|
||||
public String getTelephone() {
|
||||
return telephone;
|
||||
}
|
||||
|
||||
public void setTelephone(String telephone) {
|
||||
this.telephone = telephone;
|
||||
}
|
||||
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,393 @@
|
||||
package com.zzc.app.hotel.entity;
|
||||
|
||||
public class HotelAnnual {
|
||||
private String userId;// 用户id
|
||||
private String year;// 年报年份
|
||||
private String debt;// 年末资产负债
|
||||
private String realNights;// 实际出租间夜数
|
||||
private String canNights;// 可提供出租夜数
|
||||
private String streamTotal;// 流动资产小计
|
||||
private String manageCost;// 管理费用
|
||||
private String longInvest;// 长期投资
|
||||
private String taxes;// 税金
|
||||
private String fixedAssets;// 固定资产
|
||||
private String travelExpense;// 差旅费
|
||||
private String fixedPrice;// 固定资产原价
|
||||
private String financialCost;// 财务费用
|
||||
private String depreciation;// 累计折旧
|
||||
private String interestCost;// 利息支出
|
||||
private String yearDepreciation;// 本年折旧
|
||||
private String assetTotal;// 资产合计
|
||||
private String valueVariation;// 公允价值变动收益
|
||||
private String liabilitiesTotal;// 负债合计
|
||||
private String operationIncome;// 营业收入
|
||||
private String possessorTotal;// 所有者权益合计
|
||||
private String oprFeeAndTax;// 营业税金及附加
|
||||
private String realIncome;// 实收资本
|
||||
private String invest;// 投资收益
|
||||
private String roomIncome; // 客房收入
|
||||
private String canteeIncome; // 餐厅收入
|
||||
private String otherIncome; // 其他收入
|
||||
private String operationCost;// 营业成本
|
||||
private String operationFee;// 营业费用
|
||||
private String fianceCost;// 财务费用
|
||||
private String opreationIntrest;// 营业利润
|
||||
private String ownTax;// 所得税
|
||||
private String profitTotal;// 利润总额
|
||||
private String salary;// 本年应付职工薪酬
|
||||
private String college;// 大专以上学历人数
|
||||
private String people;// 全部从业人员平均人数
|
||||
private String deposit; // 存货
|
||||
private String room; // 客房数
|
||||
private String bed; // 床位数
|
||||
private String actualRent; // 实际出租夜数
|
||||
private String forHire; // 可供出租夜数
|
||||
|
||||
private String status;// 审核状态
|
||||
private String reportDate; // 报出日期
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
public void setYear(String year) {
|
||||
this.year = year;
|
||||
}
|
||||
|
||||
public String getDebt() {
|
||||
return debt;
|
||||
}
|
||||
|
||||
public void setDebt(String debt) {
|
||||
this.debt = debt;
|
||||
}
|
||||
|
||||
public String getRealNights() {
|
||||
return realNights;
|
||||
}
|
||||
|
||||
public void setRealNights(String realNights) {
|
||||
this.realNights = realNights;
|
||||
}
|
||||
|
||||
public String getCanNights() {
|
||||
return canNights;
|
||||
}
|
||||
|
||||
public void setCanNights(String canNights) {
|
||||
this.canNights = canNights;
|
||||
}
|
||||
|
||||
public String getStreamTotal() {
|
||||
return streamTotal;
|
||||
}
|
||||
|
||||
public void setStreamTotal(String streamTotal) {
|
||||
this.streamTotal = streamTotal;
|
||||
}
|
||||
|
||||
public String getManageCost() {
|
||||
return manageCost;
|
||||
}
|
||||
|
||||
public void setManageCost(String manageCost) {
|
||||
this.manageCost = manageCost;
|
||||
}
|
||||
|
||||
public String getLongInvest() {
|
||||
return longInvest;
|
||||
}
|
||||
|
||||
public void setLongInvest(String longInvest) {
|
||||
this.longInvest = longInvest;
|
||||
}
|
||||
|
||||
public String getTaxes() {
|
||||
return taxes;
|
||||
}
|
||||
|
||||
public void setTaxes(String taxes) {
|
||||
this.taxes = taxes;
|
||||
}
|
||||
|
||||
public String getFixedAssets() {
|
||||
return fixedAssets;
|
||||
}
|
||||
|
||||
public void setFixedAssets(String fixedAssets) {
|
||||
this.fixedAssets = fixedAssets;
|
||||
}
|
||||
|
||||
public String getTravelExpense() {
|
||||
return travelExpense;
|
||||
}
|
||||
|
||||
public void setTravelExpense(String travelExpense) {
|
||||
this.travelExpense = travelExpense;
|
||||
}
|
||||
|
||||
public String getFixedPrice() {
|
||||
return fixedPrice;
|
||||
}
|
||||
|
||||
public void setFixedPrice(String fixedPrice) {
|
||||
this.fixedPrice = fixedPrice;
|
||||
}
|
||||
|
||||
public String getFinancialCost() {
|
||||
return financialCost;
|
||||
}
|
||||
|
||||
public void setFinancialCost(String financialCost) {
|
||||
this.financialCost = financialCost;
|
||||
}
|
||||
|
||||
public String getDepreciation() {
|
||||
return depreciation;
|
||||
}
|
||||
|
||||
public void setDepreciation(String depreciation) {
|
||||
this.depreciation = depreciation;
|
||||
}
|
||||
|
||||
public String getInterestCost() {
|
||||
return interestCost;
|
||||
}
|
||||
|
||||
public void setInterestCost(String interestCost) {
|
||||
this.interestCost = interestCost;
|
||||
}
|
||||
|
||||
public String getYearDepreciation() {
|
||||
return yearDepreciation;
|
||||
}
|
||||
|
||||
public void setYearDepreciation(String yearDepreciation) {
|
||||
this.yearDepreciation = yearDepreciation;
|
||||
}
|
||||
|
||||
public String getAssetTotal() {
|
||||
return assetTotal;
|
||||
}
|
||||
|
||||
public void setAssetTotal(String assetTotal) {
|
||||
this.assetTotal = assetTotal;
|
||||
}
|
||||
|
||||
public String getValueVariation() {
|
||||
return valueVariation;
|
||||
}
|
||||
|
||||
public void setValueVariation(String valueVariation) {
|
||||
this.valueVariation = valueVariation;
|
||||
}
|
||||
|
||||
public String getLiabilitiesTotal() {
|
||||
return liabilitiesTotal;
|
||||
}
|
||||
|
||||
public void setLiabilitiesTotal(String liabilitiesTotal) {
|
||||
this.liabilitiesTotal = liabilitiesTotal;
|
||||
}
|
||||
|
||||
public String getOperationIncome() {
|
||||
return operationIncome;
|
||||
}
|
||||
|
||||
public void setOperationIncome(String operationIncome) {
|
||||
this.operationIncome = operationIncome;
|
||||
}
|
||||
|
||||
public String getPossessorTotal() {
|
||||
return possessorTotal;
|
||||
}
|
||||
|
||||
public void setPossessorTotal(String possessorTotal) {
|
||||
this.possessorTotal = possessorTotal;
|
||||
}
|
||||
|
||||
public String getOprFeeAndTax() {
|
||||
return oprFeeAndTax;
|
||||
}
|
||||
|
||||
public void setOprFeeAndTax(String oprFeeAndTax) {
|
||||
this.oprFeeAndTax = oprFeeAndTax;
|
||||
}
|
||||
|
||||
public String getRealIncome() {
|
||||
return realIncome;
|
||||
}
|
||||
|
||||
public void setRealIncome(String realIncome) {
|
||||
this.realIncome = realIncome;
|
||||
}
|
||||
|
||||
public String getInvest() {
|
||||
return invest;
|
||||
}
|
||||
|
||||
public void setInvest(String invest) {
|
||||
this.invest = invest;
|
||||
}
|
||||
|
||||
public String getRoomIncome() {
|
||||
return roomIncome;
|
||||
}
|
||||
|
||||
public void setRoomIncome(String roomIncome) {
|
||||
this.roomIncome = roomIncome;
|
||||
}
|
||||
|
||||
public String getCanteeIncome() {
|
||||
return canteeIncome;
|
||||
}
|
||||
|
||||
public void setCanteeIncome(String canteeIncome) {
|
||||
this.canteeIncome = canteeIncome;
|
||||
}
|
||||
|
||||
public String getOtherIncome() {
|
||||
return otherIncome;
|
||||
}
|
||||
|
||||
public void setOtherIncome(String otherIncome) {
|
||||
this.otherIncome = otherIncome;
|
||||
}
|
||||
|
||||
public String getOperationCost() {
|
||||
return operationCost;
|
||||
}
|
||||
|
||||
public void setOperationCost(String operationCost) {
|
||||
this.operationCost = operationCost;
|
||||
}
|
||||
|
||||
public String getOperationFee() {
|
||||
return operationFee;
|
||||
}
|
||||
|
||||
public void setOperationFee(String operationFee) {
|
||||
this.operationFee = operationFee;
|
||||
}
|
||||
|
||||
public String getFianceCost() {
|
||||
return fianceCost;
|
||||
}
|
||||
|
||||
public void setFianceCost(String fianceCost) {
|
||||
this.fianceCost = fianceCost;
|
||||
}
|
||||
|
||||
public String getOpreationIntrest() {
|
||||
return opreationIntrest;
|
||||
}
|
||||
|
||||
public void setOpreationIntrest(String opreationIntrest) {
|
||||
this.opreationIntrest = opreationIntrest;
|
||||
}
|
||||
|
||||
public String getOwnTax() {
|
||||
return ownTax;
|
||||
}
|
||||
|
||||
public void setOwnTax(String ownTax) {
|
||||
this.ownTax = ownTax;
|
||||
}
|
||||
|
||||
public String getProfitTotal() {
|
||||
return profitTotal;
|
||||
}
|
||||
|
||||
public void setProfitTotal(String profitTotal) {
|
||||
this.profitTotal = profitTotal;
|
||||
}
|
||||
|
||||
public String getSalary() {
|
||||
return salary;
|
||||
}
|
||||
|
||||
public void setSalary(String salary) {
|
||||
this.salary = salary;
|
||||
}
|
||||
|
||||
public String getCollege() {
|
||||
return college;
|
||||
}
|
||||
|
||||
public void setCollege(String college) {
|
||||
this.college = college;
|
||||
}
|
||||
|
||||
public String getPeople() {
|
||||
return people;
|
||||
}
|
||||
|
||||
public void setPeople(String people) {
|
||||
this.people = people;
|
||||
}
|
||||
|
||||
public String getDeposit() {
|
||||
return deposit;
|
||||
}
|
||||
|
||||
public void setDeposit(String deposit) {
|
||||
this.deposit = deposit;
|
||||
}
|
||||
|
||||
public String getRoom() {
|
||||
return room;
|
||||
}
|
||||
|
||||
public void setRoom(String room) {
|
||||
this.room = room;
|
||||
}
|
||||
|
||||
public String getBed() {
|
||||
return bed;
|
||||
}
|
||||
|
||||
public void setBed(String bed) {
|
||||
this.bed = bed;
|
||||
}
|
||||
|
||||
public String getActualRent() {
|
||||
return actualRent;
|
||||
}
|
||||
|
||||
public void setActualRent(String actualRent) {
|
||||
this.actualRent = actualRent;
|
||||
}
|
||||
|
||||
public String getForHire() {
|
||||
return forHire;
|
||||
}
|
||||
|
||||
public void setForHire(String forHire) {
|
||||
this.forHire = forHire;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getReportDate() {
|
||||
return reportDate;
|
||||
}
|
||||
|
||||
public void setReportDate(String reportDate) {
|
||||
this.reportDate = reportDate;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
package com.zzc.app.hotel.entity;
|
||||
|
||||
public class HotelDay{
|
||||
|
||||
private String id;
|
||||
// 总收入
|
||||
private String totalIncome;
|
||||
// 餐厅收入
|
||||
private String canteenIncome;
|
||||
// 客房收入
|
||||
private String roomIncome;
|
||||
// 其他收入
|
||||
private String otherIncome;
|
||||
// 实际出租间夜数
|
||||
private String realNights;
|
||||
// 可供出租间夜数
|
||||
private String canNights;
|
||||
// 平均房价
|
||||
private String avgHotelPrice;
|
||||
// 出租率
|
||||
private String rentPercent;
|
||||
// 区级审核状态
|
||||
private String districtStatus;
|
||||
// 市级审核状态
|
||||
private String status;
|
||||
// 填报人
|
||||
private String reportPerson;
|
||||
// 填报时间
|
||||
private String reportDate;
|
||||
// 填报人电话
|
||||
private String reportTel;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
public String getTotalIncome() {
|
||||
return totalIncome;
|
||||
}
|
||||
public void setTotalIncome(String totalIncome) {
|
||||
this.totalIncome = totalIncome;
|
||||
}
|
||||
public String getCanteenIncome() {
|
||||
return canteenIncome;
|
||||
}
|
||||
public void setCanteenIncome(String canteenIncome) {
|
||||
this.canteenIncome = canteenIncome;
|
||||
}
|
||||
public String getRoomIncome() {
|
||||
return roomIncome;
|
||||
}
|
||||
public void setRoomIncome(String roomIncome) {
|
||||
this.roomIncome = roomIncome;
|
||||
}
|
||||
public String getOtherIncome() {
|
||||
return otherIncome;
|
||||
}
|
||||
public void setOtherIncome(String otherIncome) {
|
||||
this.otherIncome = otherIncome;
|
||||
}
|
||||
public String getRealNights() {
|
||||
return realNights;
|
||||
}
|
||||
public void setRealNights(String realNights) {
|
||||
this.realNights = realNights;
|
||||
}
|
||||
public String getCanNights() {
|
||||
return canNights;
|
||||
}
|
||||
public void setCanNights(String canNights) {
|
||||
this.canNights = canNights;
|
||||
}
|
||||
public String getAvgHotelPrice() {
|
||||
return avgHotelPrice;
|
||||
}
|
||||
public void setAvgHotelPrice(String avgHotelPrice) {
|
||||
this.avgHotelPrice = avgHotelPrice;
|
||||
}
|
||||
public String getRentPercent() {
|
||||
return rentPercent;
|
||||
}
|
||||
public void setRentPercent(String rentPercent) {
|
||||
this.rentPercent = rentPercent;
|
||||
}
|
||||
public String getDistrictStatus() {
|
||||
return districtStatus;
|
||||
}
|
||||
public void setDistrictStatus(String districtStatus) {
|
||||
this.districtStatus = districtStatus;
|
||||
}
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
public String getReportPerson() {
|
||||
return reportPerson;
|
||||
}
|
||||
public void setReportPerson(String reportPerson) {
|
||||
this.reportPerson = reportPerson;
|
||||
}
|
||||
public String getReportDate() {
|
||||
return reportDate;
|
||||
}
|
||||
public void setReportDate(String reportDate) {
|
||||
this.reportDate = reportDate;
|
||||
}
|
||||
public String getReportTel() {
|
||||
return reportTel;
|
||||
}
|
||||
public void setReportTel(String reportTel) {
|
||||
this.reportTel = reportTel;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,151 @@
|
||||
package com.zzc.app.hotel.entity;
|
||||
|
||||
public class HotelQuarter {
|
||||
private String userId; // 用户id
|
||||
private String year; // 年份
|
||||
private String quarter;// 1 2 3 4 第一二三四季度
|
||||
private String writer; // 填报人
|
||||
private String mobile; // 手机号码
|
||||
private String writerDate; // 填报日期
|
||||
private String totalIncome; // 总收入(万元)
|
||||
private String canteenIncome; // 餐厅收入(万元)
|
||||
private String roomIncome; // 客房收入(万元)
|
||||
private String otherIncome; // 其他收入(万元)
|
||||
private String roomnum; // 客房数量
|
||||
private String bednum; // 床位数量
|
||||
private String realNights;// 实际出租夜间数
|
||||
private String canNights;// 可供出租夜间数
|
||||
|
||||
private String avgHotelPrice; // 平均房价
|
||||
|
||||
private String status;// 审核状态
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getYear() {
|
||||
return year;
|
||||
}
|
||||
|
||||
public void setYear(String year) {
|
||||
this.year = year;
|
||||
}
|
||||
|
||||
public String getQuarter() {
|
||||
return quarter;
|
||||
}
|
||||
|
||||
public void setQuarter(String quarter) {
|
||||
this.quarter = quarter;
|
||||
}
|
||||
|
||||
public String getWriter() {
|
||||
return writer;
|
||||
}
|
||||
|
||||
public void setWriter(String writer) {
|
||||
this.writer = writer;
|
||||
}
|
||||
|
||||
public String getMobile() {
|
||||
return mobile;
|
||||
}
|
||||
|
||||
public void setMobile(String mobile) {
|
||||
this.mobile = mobile;
|
||||
}
|
||||
|
||||
public String getWriterDate() {
|
||||
return writerDate;
|
||||
}
|
||||
|
||||
public void setWriterDate(String writerDate) {
|
||||
this.writerDate = writerDate;
|
||||
}
|
||||
|
||||
public String getTotalIncome() {
|
||||
return totalIncome;
|
||||
}
|
||||
|
||||
public void setTotalIncome(String totalIncome) {
|
||||
this.totalIncome = totalIncome;
|
||||
}
|
||||
|
||||
public String getCanteenIncome() {
|
||||
return canteenIncome;
|
||||
}
|
||||
|
||||
public void setCanteenIncome(String canteenIncome) {
|
||||
this.canteenIncome = canteenIncome;
|
||||
}
|
||||
|
||||
public String getRoomIncome() {
|
||||
return roomIncome;
|
||||
}
|
||||
|
||||
public void setRoomIncome(String roomIncome) {
|
||||
this.roomIncome = roomIncome;
|
||||
}
|
||||
|
||||
public String getOtherIncome() {
|
||||
return otherIncome;
|
||||
}
|
||||
|
||||
public void setOtherIncome(String otherIncome) {
|
||||
this.otherIncome = otherIncome;
|
||||
}
|
||||
|
||||
public String getRoomnum() {
|
||||
return roomnum;
|
||||
}
|
||||
|
||||
public void setRoomnum(String roomnum) {
|
||||
this.roomnum = roomnum;
|
||||
}
|
||||
|
||||
public String getBednum() {
|
||||
return bednum;
|
||||
}
|
||||
|
||||
public void setBednum(String bednum) {
|
||||
this.bednum = bednum;
|
||||
}
|
||||
|
||||
public String getRealNights() {
|
||||
return realNights;
|
||||
}
|
||||
|
||||
public void setRealNights(String realNights) {
|
||||
this.realNights = realNights;
|
||||
}
|
||||
|
||||
public String getCanNights() {
|
||||
return canNights;
|
||||
}
|
||||
|
||||
public void setCanNights(String canNights) {
|
||||
this.canNights = canNights;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getAvgHotelPrice() {
|
||||
return avgHotelPrice;
|
||||
}
|
||||
|
||||
public void setAvgHotelPrice(String avgHotelPrice) {
|
||||
this.avgHotelPrice = avgHotelPrice;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.zzc.app.login;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/appservice/scheduleRemindercontroller")
|
||||
public class ScheduleReminderController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
@RequestMapping(params = "scheduleReminder", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public String scheduleReminder(HttpServletRequest request) {
|
||||
String userId = request.getParameter("userId");
|
||||
Map<String, Object> roleMap = systemService
|
||||
.findOneForJdbc(
|
||||
"select * from t_s_role t where t.id=(select tr.roleid from t_s_role_user tr where tr.userid =?)",
|
||||
userId);
|
||||
String role = roleMap.get("rolename").toString();
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
int nowYear = calendar.get(Calendar.YEAR);
|
||||
int nowWeek = calendar.get(Calendar.WEEK_OF_YEAR);
|
||||
int nowDay = calendar.get(Calendar.DAY_OF_MONTH);
|
||||
int nowWeekDay = calendar.get(Calendar.DAY_OF_WEEK) - 1;
|
||||
int hour = calendar.get(Calendar.HOUR_OF_DAY);
|
||||
int nowMonth = calendar.get(Calendar.MONTH) + 1;
|
||||
List<String> scheduleList = new ArrayList<String>();
|
||||
if (role.contains("酒店")) {
|
||||
// 年报填报
|
||||
if (nowMonth < 2) {
|
||||
scheduleList.add(nowYear - 1 + "年年报填报工作开始");
|
||||
} else if (nowMonth == 2 && nowDay < 15) {
|
||||
scheduleList.add(nowYear - 1 + "年年报填报工作开始");
|
||||
}
|
||||
// 季报填报
|
||||
if (nowMonth == 4 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第1季度季报填报工作开始");
|
||||
} else if (nowMonth == 7 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第2季度季报填报工作开始");
|
||||
} else if (nowMonth == 10 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第3季度季报填报工作开始");
|
||||
} else if (nowMonth == 1 && nowDay < 10) {
|
||||
scheduleList.add(nowYear - 1 + "年第4季度季报填报工作开始");
|
||||
}
|
||||
// 月报填报
|
||||
if (nowMonth == 1) {
|
||||
if (nowDay < 3) {
|
||||
scheduleList.add(nowYear - 1 + "年12月报填报工作开始");
|
||||
}
|
||||
} else {
|
||||
if (nowDay < 3) {
|
||||
scheduleList.add(nowYear + "年" + (nowMonth - 1)
|
||||
+ "月报填报工作开始");
|
||||
}
|
||||
}
|
||||
|
||||
} else if (role.contains("景区")) {
|
||||
// 年报填报
|
||||
if (nowMonth < 2) {
|
||||
scheduleList.add(nowYear - 1 + "年年报填报工作开始");
|
||||
} else if (nowMonth == 2 && nowDay < 15) {
|
||||
scheduleList.add(nowYear - 1 + "年年报填报工作开始");
|
||||
}
|
||||
// 季报填报
|
||||
if (nowMonth == 4 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第1季度季报填报工作开始");
|
||||
} else if (nowMonth == 7 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第2季度季报填报工作开始");
|
||||
} else if (nowMonth == 10 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第3季度季报填报工作开始");
|
||||
} else if (nowMonth == 1 && nowDay < 10) {
|
||||
scheduleList.add(nowYear - 1 + "年第4季度季报填报工作开始");
|
||||
}
|
||||
// 月报填报
|
||||
if (nowMonth == 1) {
|
||||
if (nowDay < 5) {
|
||||
scheduleList.add(nowYear - 1 + "年12月报填报工作开始");
|
||||
}
|
||||
} else {
|
||||
if (nowDay < 5) {
|
||||
scheduleList.add(nowYear + "年" + (nowMonth - 1)
|
||||
+ "月报填报工作开始");
|
||||
}
|
||||
}
|
||||
// 周报填报
|
||||
if (nowWeek == 1) {
|
||||
if (nowWeekDay == 1 && hour < 15) {
|
||||
scheduleList.add(nowYear - 1 + "年第52周周报填报工作开始");
|
||||
}
|
||||
} else {
|
||||
if (nowWeekDay == 1 && hour < 15) {
|
||||
scheduleList.add(nowYear + "年第" + (nowWeek - 1)
|
||||
+ "周周报填报工作开始");
|
||||
}
|
||||
}
|
||||
} else if (role.contains("旅行社")) {
|
||||
// 年报填报
|
||||
if (nowMonth < 2) {
|
||||
scheduleList.add(nowYear - 1 + "年年报填报工作开始");
|
||||
} else if (nowMonth == 2 && nowDay < 15) {
|
||||
scheduleList.add(nowYear - 1 + "年年报填报工作开始");
|
||||
}
|
||||
// 季报填报
|
||||
if (nowMonth == 4 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第1季度季报填报工作开始");
|
||||
} else if (nowMonth == 7 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第2季度季报填报工作开始");
|
||||
} else if (nowMonth == 10 && nowDay < 10) {
|
||||
scheduleList.add(nowYear + "年第3季度季报填报工作开始");
|
||||
} else if (nowMonth == 1 && nowDay < 10) {
|
||||
scheduleList.add(nowYear - 1 + "年第4季度季报填报工作开始");
|
||||
}
|
||||
} else if (role.contains("机场") || role.contains("动车")
|
||||
|| role.contains("高尔夫") || role.contains("游艇")
|
||||
|| role.contains("空中飞行")) {
|
||||
// 月报填报
|
||||
if (nowMonth == 1) {
|
||||
if (nowDay < 5) {
|
||||
scheduleList.add(nowYear - 1 + "年12月报填报工作开始");
|
||||
}
|
||||
} else {
|
||||
if (nowDay < 5) {
|
||||
scheduleList.add(nowYear + "年" + (nowMonth - 1)
|
||||
+ "月报填报工作开始");
|
||||
}
|
||||
}
|
||||
}
|
||||
String res = JSON.toJSONString(scheduleList);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,909 @@
|
||||
package com.zzc.app.login;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.zzc.app.entity.AppTSUser;
|
||||
import com.zzc.app.entity.EnterpriseInfo;
|
||||
import com.zzc.app.login.entity.APPHotel;
|
||||
import com.zzc.app.login.entity.APPOtherTravel;
|
||||
import com.zzc.app.login.entity.APPTraveldata;
|
||||
import com.zzc.app.utils.ResolveParams;
|
||||
import com.zzc.core.extend.datasource.DataSourceContextHolder;
|
||||
import com.zzc.core.extend.datasource.DataSourceType;
|
||||
import com.zzc.web.htoal.entity.Hotelmanage;
|
||||
import com.zzc.web.htoal.entity.HotelmanageSta;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.system.pojo.base.TSDepart;
|
||||
import com.zzc.web.system.pojo.base.TSUser;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
import com.zzc.web.system.service.UserService;
|
||||
import com.zzc.web.travel.entity.Traveldata;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/appservice/userlogincontroller")
|
||||
public class UserLoginController {
|
||||
|
||||
private SystemService systemService;
|
||||
private UserService userService;
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setUserService(UserService userService) {
|
||||
this.userService = userService;
|
||||
}
|
||||
|
||||
@RequestMapping(params = "getVersion")
|
||||
@ResponseBody
|
||||
public JSONObject getVersion(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
InputStream in = new BufferedInputStream(
|
||||
UserLoginController.class
|
||||
.getResourceAsStream("/sysConfig.properties"));
|
||||
Properties p = new Properties();
|
||||
try {
|
||||
p.load(in);
|
||||
} catch (IOException e) {
|
||||
return null;
|
||||
}
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("android_version", p.getProperty("android_version"));
|
||||
json.put("ios_version", p.getProperty("ios_version"));
|
||||
return json;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 服务策略
|
||||
*
|
||||
* @author Fp
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(params = "privacyClause")
|
||||
public ModelAndView privacyClause(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
return new ModelAndView("appservice/pages/privacyClause");
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 隐私条款
|
||||
*
|
||||
* @author Fp
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(params = "serviceStrategy")
|
||||
public ModelAndView otserviceStrategyherTravel(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
return new ModelAndView("appservice/pages/serviceStrategy");
|
||||
}
|
||||
|
||||
@RequestMapping(params = "otherTravel")
|
||||
public ModelAndView otherTravel(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
String userId = request.getParameter("userId");
|
||||
request.setAttribute("userId", userId);
|
||||
return new ModelAndView("appservice/company");
|
||||
}
|
||||
|
||||
@RequestMapping(params = "hotel")
|
||||
public ModelAndView hotel(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
String userId = request.getParameter("userId");
|
||||
request.setAttribute("userId", userId);
|
||||
return new ModelAndView("appservice/hotel");
|
||||
}
|
||||
|
||||
@RequestMapping(params = "scenic")
|
||||
public ModelAndView scenic(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
String userId = request.getParameter("userId");
|
||||
request.setAttribute("userId", userId);
|
||||
return new ModelAndView("appservice/scenic");
|
||||
}
|
||||
|
||||
@RequestMapping(params = "login")
|
||||
@ResponseBody
|
||||
public AppTSUser login(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
// 请求参数解析
|
||||
Map<String, String> map = ResolveParams.getParameterMap(request);
|
||||
|
||||
String username = map.get("username");
|
||||
String password = map.get("password");
|
||||
|
||||
// 去掉登录的大小写限制
|
||||
List<Map<String, Object>> mapUsername = systemService.findForJdbc("select t.username from t_s_base_user t where upper(t.username)=?", username);
|
||||
if(mapUsername.size() != 0) username = mapUsername.get(0).get("username").toString();
|
||||
|
||||
String key = "D1B5CC2FE46C4CC983C073BCA897935608D926CD32992B5900";
|
||||
TSUser user = new TSUser();
|
||||
user.setUserKey(key);
|
||||
user.setUserName(username);
|
||||
user.setPassword(password);
|
||||
DataSourceContextHolder
|
||||
.setDataSourceType(DataSourceType.dataSource_zzc);
|
||||
|
||||
String tip = "success";
|
||||
AppTSUser appUser = new AppTSUser();
|
||||
int users = userService.getList(TSUser.class).size();
|
||||
try {
|
||||
if (users == 0) {
|
||||
tip = "用户名或密码错误";
|
||||
appUser.setTip(tip);
|
||||
return appUser;
|
||||
} else {
|
||||
TSUser u = userService.checkUserExits(user);
|
||||
if (u == null) {
|
||||
tip = "用户名或密码错误";
|
||||
appUser.setTip(tip);
|
||||
return appUser;
|
||||
}
|
||||
TSUser u2 = userService.getEntity(TSUser.class, u.getId());
|
||||
if (u != null && u2.getStatus() != 0) {
|
||||
appUser = new AppTSUser();
|
||||
Map<String, Object> attrMap = new HashMap<String, Object>();
|
||||
Long orgNum = systemService
|
||||
.getCountForJdbc("select count(1) from t_s_user_org where user_id = '"
|
||||
+ u.getId() + "'");
|
||||
if (orgNum > 1) {
|
||||
attrMap.put("orgNum", orgNum);
|
||||
attrMap.put("user", u2);
|
||||
} else {
|
||||
Map<String, Object> userOrgMap = systemService
|
||||
.findOneForJdbc(
|
||||
"select org_id as orgId from t_s_user_org where user_id=?",
|
||||
u2.getId());
|
||||
TSDepart currentDepart = systemService.get(
|
||||
TSDepart.class,
|
||||
(String) userOrgMap.get("orgId"));
|
||||
user.setCurrentDepart(currentDepart);
|
||||
}
|
||||
appUser.setUser(user);
|
||||
Map<String, Object> roleMap = systemService
|
||||
.findOneForJdbc(
|
||||
"select * from t_s_role t where t.id=(select tr.roleid from t_s_role_user tr where tr.userid =?)",
|
||||
u2.getId());
|
||||
String role = roleMap.get("rolename").toString();
|
||||
Map<String, Object> rs = new HashMap<>();
|
||||
if (role.contains("旅行社")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.`name` enterpriseName, ");
|
||||
sql.append(" t.licensenum enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.area='0','市辖区',if(t.area='1','崖州区',if(t.area='2','海棠区',if(t.area='3','天涯区',if(t.area='4','吉阳区',''))))) enterpriseArea, ");
|
||||
sql.append(" if(t.scene_spotlevel='0','未评定',if(t.scene_spotlevel='1','A级',if(t.scene_spotlevel='2','AA级',if(t.scene_spotlevel='3','AAA级',if(t.scene_spotlevel='4','AAAA级',if(t.scene_spotlevel='5','AAAAA级','')))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_travelagency_info t ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" t.user_id=?");
|
||||
rs = systemService.findOneForJdbc(sql.toString(),
|
||||
u2.getId());
|
||||
} else if (role.contains("景区")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.`name` enterpriseName, ");
|
||||
sql.append(" t. CODE enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.area='5','三亚市',if(t.area='0','市辖区',if(t.area='1','崖州区',if(t.area='2','海棠区',if(t.area='3','天涯区',if(t.area='4','吉阳区','')))))) enterpriseArea, ");
|
||||
sql.append(" if(t.`level`='0','未评定',if(t.`level`='1','A级',if(t.`level`='2','AA级',if(t.`level`='3','AAA级',if(t.`level`='4','AAAA级',if(t.`level`='5','AAAAA级','')))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_scenicspot_info_sta t ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" t.user_id =?");
|
||||
rs = systemService.findOneForJdbc(sql.toString(),
|
||||
u2.getId());
|
||||
} else if (role.contains("酒店")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.unitname enterpriseName, ");
|
||||
sql.append(" t.organizationNum enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.w_county='0','市辖区',if(t.w_county='1','崖州区',if(t.w_county='2','海棠区',if(t.w_county='3','天涯区',if(t.w_county='4','吉阳区',''))))) enterpriseArea, ");
|
||||
sql.append(" if(t.housegrade='0','其他',if(t.housegrade='1','舒适',if(t.housegrade='2','高档',if(t.housegrade='3','豪华',if(t.housegrade='4','一星',if(t.housegrade='5','二星',if(t.housegrade='6','三星',if(t.housegrade='7','四星',if(t.housegrade='8','五星',''))))))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_hotelmanage t ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" t.id=? ");
|
||||
rs = systemService.findOneForJdbc(sql.toString(),
|
||||
u2.getId());
|
||||
} else if (role.contains("机场") || role.contains("动车")
|
||||
|| role.contains("高尔夫") || role.contains("游艇")
|
||||
|| role.contains("空中飞行")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.`name` enterpriseName, ");
|
||||
sql.append(" '' enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.area='0','市辖区',if(t.area='1','崖州区',if(t.area='2','海棠区',if(t.area='3','天涯区',if(t.area='4','吉阳区',''))))) enterpriseArea, ");
|
||||
sql.append(" if(t.type='1','高尔夫项目',if(t.type='2','游艇项目',if(t.type='3','空中飞行项目',if(t.type='4','机场项目',if(t.type='5','动车项目',''))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_othercompany_info t ");
|
||||
sql.append(" WHERE ");
|
||||
sql.append(" t.id=? ");
|
||||
rs = systemService.findOneForJdbc(sql.toString(),
|
||||
u2.getId());
|
||||
}
|
||||
appUser.setRole(role);
|
||||
appUser.setUser(u2);
|
||||
appUser.setEnterpriseName(rs.get("enterpriseName") == null ? ""
|
||||
: rs.get("enterpriseName").toString());
|
||||
appUser.setEnterpriseCode(rs.get("enterpriseCode") == null ? ""
|
||||
: rs.get("enterpriseCode").toString());
|
||||
appUser.setEnterpriseAddress(rs.get("enterpriseAddress") == null ? ""
|
||||
: rs.get("enterpriseAddress").toString());
|
||||
appUser.setEnterpriseArea(rs.get("enterpriseArea") == null ? ""
|
||||
: rs.get("enterpriseArea").toString());
|
||||
appUser.setEnterpriseType(rs.get("enterpriseType") == null ? ""
|
||||
: rs.get("enterpriseType").toString());
|
||||
} else {
|
||||
if (u2.getStatus() == 0) {
|
||||
tip = "该账户已被锁定";
|
||||
appUser.setTip(tip);
|
||||
return appUser;
|
||||
}
|
||||
tip = "用户信息获取失败,请完善企业信息";
|
||||
appUser.setTip(tip);
|
||||
return appUser;
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
tip = "用户信息获取失败,请完善企业信息";
|
||||
appUser.setTip(tip);
|
||||
return appUser;
|
||||
}
|
||||
appUser.setTip(tip);
|
||||
return appUser;
|
||||
}
|
||||
|
||||
@RequestMapping(params = "enterpriseQuery")
|
||||
@ResponseBody
|
||||
public List<EnterpriseInfo> enterpriseQuery(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
try {
|
||||
request.setCharacterEncoding("UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
// TODO 自动生成的 catch 块
|
||||
e.printStackTrace();
|
||||
}
|
||||
String name = request.getParameter("name");
|
||||
String role = request.getParameter("role");
|
||||
if (role == null || role.length() == 0)
|
||||
return null;
|
||||
List<Map<String, Object>> rs = new ArrayList<>();
|
||||
if (role.contains("旅行社")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.id id, ");
|
||||
sql.append(" t.phone telephone, ");
|
||||
sql.append(" (select g.score from t_user_score g where g.user_id=t.user_id) enterpriseScore, ");
|
||||
sql.append(" t.`name` enterpriseName, ");
|
||||
sql.append(" t.licensenum enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.area='0','市辖区',if(t.area='1','崖州区',if(t.area='2','海棠区',if(t.area='3','天涯区',if(t.area='4','吉阳区',''))))) enterpriseArea, ");
|
||||
sql.append(" if(t.scene_spotlevel='0','未评定',if(t.scene_spotlevel='1','A级',if(t.scene_spotlevel='2','AA级',if(t.scene_spotlevel='3','AAA级',if(t.scene_spotlevel='4','AAAA级',if(t.scene_spotlevel='5','AAAAA级','')))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_travelagency_info t ");
|
||||
sql.append(" WHERE 1=1 ");
|
||||
if (name != null && name.length() != 0) {
|
||||
sql.append(" and t.`name` like '%" + name + "%'");
|
||||
}
|
||||
rs = systemService.findForJdbc(sql.toString());
|
||||
} else if (role.contains("景区")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.id id, ");
|
||||
sql.append(" t.consult_phone telephone, ");
|
||||
sql.append(" (select g.score from t_user_score g where g.user_id=t.id) enterpriseScore, ");
|
||||
sql.append(" t.`name` enterpriseName, ");
|
||||
sql.append(" t. CODE enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.area='5','三亚市',if(t.area='0','市辖区',if(t.area='1','崖州区',if(t.area='2','海棠区',if(t.area='3','天涯区',if(t.area='4','吉阳区','')))))) enterpriseArea, ");
|
||||
sql.append(" if(t.`level`='0','未评定',if(t.`level`='1','A级',if(t.`level`='2','AA级',if(t.`level`='3','AAA级',if(t.`level`='4','AAAA级',if(t.`level`='5','AAAAA级','')))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_scenicspot_info_sta t ");
|
||||
sql.append(" WHERE 1=1 ");
|
||||
if (name != null && name.length() != 0) {
|
||||
sql.append(" and t.`name` like '%" + name + "%'");
|
||||
}
|
||||
rs = systemService.findForJdbc(sql.toString());
|
||||
} else if (role.contains("酒店")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.id id, ");
|
||||
sql.append(" t.telephone telephone, ");
|
||||
sql.append(" (select g.score from t_user_score g where g.user_id=t.id) enterpriseScore, ");
|
||||
sql.append(" t.unitname enterpriseName, ");
|
||||
sql.append(" t.organizationNum enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.w_county='0','市辖区',if(t.w_county='1','崖州区',if(t.w_county='2','海棠区',if(t.w_county='3','天涯区',if(t.w_county='4','吉阳区',''))))) enterpriseArea, ");
|
||||
sql.append(" if(t.housegrade='0','其他',if(t.housegrade='1','舒适',if(t.housegrade='2','高档',if(t.housegrade='3','豪华',if(t.housegrade='4','一星',if(t.housegrade='5','二星',if(t.housegrade='6','三星',if(t.housegrade='7','四星',if(t.housegrade='8','五星',''))))))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_hotelmanage t ");
|
||||
sql.append(" WHERE 1=1 ");
|
||||
if (name != null && name.length() != 0) {
|
||||
sql.append(" and t.unitname like '%" + name + "%'");
|
||||
}
|
||||
rs = systemService.findForJdbc(sql.toString());
|
||||
} else if (role.contains("机场") || role.contains("动车")
|
||||
|| role.contains("高尔夫") || role.contains("游艇")
|
||||
|| role.contains("空中飞行")) {
|
||||
StringBuffer sql = new StringBuffer();
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" t.id id, ");
|
||||
sql.append(" t.phone telephone, ");
|
||||
sql.append(" t.`name` enterpriseName, ");
|
||||
sql.append(" '' enterpriseCode, ");
|
||||
sql.append(" t.address enterpriseAddress, ");
|
||||
sql.append(" if(t.area='0','市辖区',if(t.area='1','崖州区',if(t.area='2','海棠区',if(t.area='3','天涯区',if(t.area='4','吉阳区',''))))) enterpriseArea, ");
|
||||
sql.append(" if(t.type='1','高尔夫项目',if(t.type='2','游艇项目',if(t.type='3','空中飞行项目',if(t.type='4','机场项目',if(t.type='5','动车项目',''))))) enterpriseType ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" t_othercompany_info t ");
|
||||
sql.append(" WHERE 1=1 ");
|
||||
if (name != null && name.length() != 0) {
|
||||
sql.append(" and t.`name` like '%" + name + "%'");
|
||||
}
|
||||
rs = systemService.findForJdbc(sql.toString());
|
||||
}
|
||||
List<EnterpriseInfo> list = new ArrayList<>();
|
||||
for (Iterator iterator = rs.iterator(); iterator.hasNext();) {
|
||||
Map<String, Object> map = (Map<String, Object>) iterator.next();
|
||||
EnterpriseInfo enterpriseInfo = new EnterpriseInfo();
|
||||
enterpriseInfo.setId(map.get("id") == null ? "" : map.get("id")
|
||||
.toString());
|
||||
enterpriseInfo
|
||||
.setEnterpriseAddress(map.get("enterpriseAddress") == null ? ""
|
||||
: map.get("enterpriseAddress").toString());
|
||||
enterpriseInfo
|
||||
.setEnterpriseArea(map.get("enterpriseArea") == null ? ""
|
||||
: map.get("enterpriseArea").toString());
|
||||
enterpriseInfo
|
||||
.setEnterpriseCode(map.get("enterpriseCode") == null ? ""
|
||||
: map.get("enterpriseCode").toString());
|
||||
enterpriseInfo
|
||||
.setEnterpriseName(map.get("enterpriseName") == null ? ""
|
||||
: map.get("enterpriseName").toString());
|
||||
enterpriseInfo
|
||||
.setEnterpriseType(map.get("enterpriseType") == null ? ""
|
||||
: map.get("enterpriseType").toString());
|
||||
enterpriseInfo
|
||||
.setEnterpriseScore(map.get("enterpriseScore") == null ? ""
|
||||
: map.get("enterpriseScore").toString());
|
||||
enterpriseInfo.setTelephone(map.get("telephone") == null ? "" : map
|
||||
.get("telephone").toString());
|
||||
list.add(enterpriseInfo);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取旅行社基本信息
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return 旅行社基本信息
|
||||
*/
|
||||
@RequestMapping(params = "getTravelAgencyDetailInfo")
|
||||
@ResponseBody
|
||||
public APPTraveldata getTravelAgencyDetailInfo(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
String userId = request.getParameter("userId");
|
||||
|
||||
APPTraveldata data = new APPTraveldata();
|
||||
// 参数校验
|
||||
if (userId == null || userId.length() == 0)
|
||||
return data;
|
||||
|
||||
List<Traveldata> traveldataList = systemService.findByProperty(
|
||||
Traveldata.class, "userId", userId);
|
||||
Traveldata traveldata = traveldataList.get(0);
|
||||
// 主键
|
||||
data.setId(traveldata.getId());
|
||||
// 许可证编号
|
||||
data.setLicensenum(traveldata.getLicensenum());
|
||||
;
|
||||
// 旅行社名称
|
||||
data.setName(traveldata.getName());
|
||||
// 英文名称
|
||||
data.setEnglishname(traveldata.getEnglishname());
|
||||
// 组织机构代码
|
||||
data.setOrganizationnum(traveldata.getOrganizationnum());
|
||||
// 法人代表
|
||||
data.setCorporate(traveldata.getCorporate());
|
||||
// 行政区域代码
|
||||
data.setAdminnum(traveldata.getAdminnum());
|
||||
// 统一社会信用代码
|
||||
data.setProvince(traveldata.getProvince());
|
||||
// 所在地区
|
||||
data.setArea(traveldata.getArea());
|
||||
// 详细地址
|
||||
data.setAddress(traveldata.getAddress());
|
||||
// 邮政编码
|
||||
data.setZonecode(traveldata.getZonecode());
|
||||
// 固定电话
|
||||
data.setPhone(traveldata.getPhone());
|
||||
// 固定电话分机
|
||||
data.setPhoneextension(traveldata.getPhoneextension());
|
||||
// 传真
|
||||
data.setFax(traveldata.getFax());
|
||||
// 传真分机
|
||||
data.setFaxextension(traveldata.getFaxextension());
|
||||
// 手机
|
||||
data.setMobile(traveldata.getMobile());
|
||||
// 邮箱
|
||||
data.setEmail(traveldata.getEmail());
|
||||
// 单位负责人
|
||||
data.setPrincipal(traveldata.getPrincipal());
|
||||
// 企业登记注册类型
|
||||
data.setRegisterstyle(traveldata.getRegisterstyle());
|
||||
// 是否经营出境游
|
||||
data.setBusinessexit("1".equals(traveldata.getBusinessexit()) ? "是"
|
||||
: "否");
|
||||
// 是否经营边境游
|
||||
data.setBusinessborder("1".equals(traveldata.getBusinessborder()) ? "是"
|
||||
: "否");
|
||||
// 旅行社协会会员
|
||||
data.setIsmember("1".equals(traveldata.getIsmember()) ? "是" : "否");
|
||||
// qq
|
||||
data.setQq(traveldata.getQq());
|
||||
// 网站
|
||||
data.setWeburl(traveldata.getWeburl());
|
||||
// 旅行社等级
|
||||
data.setSceneSpotlevel(traveldata.getSceneSpotlevel());
|
||||
// 工商登记注册时间
|
||||
data.setTableDate(traveldata.getTableDate());
|
||||
// 填表人
|
||||
data.setFiller(traveldata.getFiller());
|
||||
// 填表人电话
|
||||
data.setFillerTel(traveldata.getFillerTel());
|
||||
// 批准文号
|
||||
data.setAccommodationStar(traveldata.getAccommodationStar());
|
||||
// 旅行社经营场所
|
||||
data.setTravelAgencyType(traveldata.getTravelAgencyType());
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取酒店基本信息
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return 酒店基本信息
|
||||
*/
|
||||
@RequestMapping(params = "getOfficalHotelDetailInfo")
|
||||
@ResponseBody
|
||||
public APPHotel getOfficalHotelDetailInfo(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
|
||||
/** 设置响应头允许ajax跨域访问 **/
|
||||
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||
/* 星号表示所有的异域请求都可以接受, */
|
||||
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
|
||||
|
||||
String userId = request.getParameter("userId");
|
||||
|
||||
APPHotel data = new APPHotel();
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
try {
|
||||
// 获取酒店信息
|
||||
Hotelmanage hotelmanage = systemService.get(Hotelmanage.class,
|
||||
userId);
|
||||
data.setId(hotelmanage.getId());
|
||||
// 标牌编码
|
||||
data.setCode(hotelmanage.getCode());
|
||||
// 酒店法人
|
||||
data.setLegalPerson(hotelmanage.getLegalPerson());
|
||||
// 组织机构代码
|
||||
data.setOrganizationNum(hotelmanage.getOrganizationNum());
|
||||
// 单位名称
|
||||
data.setUnitname(hotelmanage.getUnitname());
|
||||
// 所属市,默认三亚市
|
||||
data.setCity("三亚市");
|
||||
// 所在地区,"市辖区_0","吉阳区_1","崖州区_2","天涯区_3","海棠区_4"
|
||||
String county = "";
|
||||
switch (hotelmanage.getCounty() == null ? "" : hotelmanage
|
||||
.getCounty()) {
|
||||
case "0":
|
||||
county = "市辖区";
|
||||
break;
|
||||
case "1":
|
||||
county = "吉阳区";
|
||||
break;
|
||||
case "2":
|
||||
county = "崖州区";
|
||||
break;
|
||||
case "3":
|
||||
county = "天涯区";
|
||||
break;
|
||||
case "4":
|
||||
county = "海棠区";
|
||||
break;
|
||||
}
|
||||
data.setCounty(county);
|
||||
// 所属湾区 0 市区1亚龙湾2大东海3三亚湾 4海棠湾
|
||||
String bay = "";
|
||||
switch (hotelmanage.getBay() == null ? "" : hotelmanage.getBay()) {
|
||||
case "0":
|
||||
bay = "市区";
|
||||
break;
|
||||
case "1":
|
||||
bay = "亚龙湾";
|
||||
break;
|
||||
case "2":
|
||||
bay = "大东海";
|
||||
break;
|
||||
case "3":
|
||||
bay = "三亚湾";
|
||||
break;
|
||||
case "4":
|
||||
bay = "海棠湾";
|
||||
break;
|
||||
}
|
||||
data.setBay(bay);
|
||||
// 地址
|
||||
data.setAddress(hotelmanage.getAddress());
|
||||
// 负责人
|
||||
data.setManager(hotelmanage.getManager());
|
||||
// 邮政编码
|
||||
data.setZipcode(hotelmanage.getZipcode());
|
||||
// 电话号码
|
||||
data.setTelephone(hotelmanage.getTelephone());
|
||||
// 手机号码
|
||||
data.setMobile(hotelmanage.getMobile());
|
||||
// 酒店星级,"其他_0","舒适_1","高档_2","豪华_3","一星_4","二星_5","三星_6","四星_7","五星_8"
|
||||
String housegrade = "";
|
||||
switch (hotelmanage.getHousegrade() == null ? "" : hotelmanage
|
||||
.getHousegrade()) {
|
||||
case "0":
|
||||
housegrade = "其他";
|
||||
break;
|
||||
case "1":
|
||||
housegrade = "舒适";
|
||||
break;
|
||||
case "2":
|
||||
housegrade = "高档";
|
||||
break;
|
||||
case "3":
|
||||
housegrade = "豪华";
|
||||
break;
|
||||
case "4":
|
||||
housegrade = "一星";
|
||||
break;
|
||||
case "5":
|
||||
housegrade = "二星";
|
||||
break;
|
||||
case "6":
|
||||
housegrade = "三星";
|
||||
break;
|
||||
case "7":
|
||||
housegrade = "四星";
|
||||
break;
|
||||
case "8":
|
||||
housegrade = "五星";
|
||||
break;
|
||||
}
|
||||
data.setHousegrade(housegrade);
|
||||
// 房间数
|
||||
data.setHousenum(hotelmanage.getHousenum() == null ? "" : String
|
||||
.valueOf(hotelmanage.getHousenum()));
|
||||
// 床位数
|
||||
data.setBednum(hotelmanage.getBednum() == null ? "" : String
|
||||
.valueOf(hotelmanage.getBednum()));
|
||||
// 工商注册登记时间
|
||||
String registertime = "";
|
||||
try {
|
||||
registertime = sdf.format(hotelmanage.getRegistertime());
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
data.setRegistertime(registertime);
|
||||
// 企业注册登记类型
|
||||
data.setRegisterstyle(hotelmanage.getRegisterstyle());
|
||||
// 填表人
|
||||
data.setWriter(hotelmanage.getWriter());
|
||||
// 传真
|
||||
data.setFax(hotelmanage.getFax());
|
||||
// 网址
|
||||
data.setWeburl(hotelmanage.getWeburl());
|
||||
// 邮件
|
||||
data.setEmail(hotelmanage.getEmail());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取酒店基本信息
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return 酒店基本信息
|
||||
*/
|
||||
@RequestMapping(params = "getHotelDetailInfo")
|
||||
@ResponseBody
|
||||
public APPHotel getHotelDetailInfo(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
|
||||
/** 设置响应头允许ajax跨域访问 **/
|
||||
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||
/* 星号表示所有的异域请求都可以接受, */
|
||||
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
|
||||
|
||||
String userId = request.getParameter("userId");
|
||||
|
||||
APPHotel data = new APPHotel();
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
try {
|
||||
// 获取酒店信息
|
||||
HotelmanageSta hotelmanage = systemService.get(
|
||||
HotelmanageSta.class, userId);
|
||||
data.setId(hotelmanage.getId());
|
||||
// 标牌编码
|
||||
data.setCode(hotelmanage.getCode());
|
||||
// 酒店法人
|
||||
data.setLegalPerson(hotelmanage.getLegalPerson());
|
||||
// 组织机构代码
|
||||
data.setOrganizationNum(hotelmanage.getOrganizationNum());
|
||||
// 单位名称
|
||||
data.setUnitname(hotelmanage.getUnitname());
|
||||
// 所属市,默认三亚市
|
||||
data.setCity("三亚市");
|
||||
// 所在地区,"市辖区_0","吉阳区_1","崖州区_2","天涯区_3","海棠区_4"
|
||||
String county = "";
|
||||
switch (hotelmanage.getCounty() == null ? "" : hotelmanage
|
||||
.getCounty()) {
|
||||
case "0":
|
||||
county = "市辖区";
|
||||
break;
|
||||
case "1":
|
||||
county = "吉阳区";
|
||||
break;
|
||||
case "2":
|
||||
county = "崖州区";
|
||||
break;
|
||||
case "3":
|
||||
county = "天涯区";
|
||||
break;
|
||||
case "4":
|
||||
county = "海棠区";
|
||||
break;
|
||||
}
|
||||
data.setCounty(county);
|
||||
// 所属湾区 0 市区1亚龙湾2大东海3三亚湾 4海棠湾
|
||||
String bay = "";
|
||||
switch (hotelmanage.getBay() == null ? "" : hotelmanage.getBay()) {
|
||||
case "0":
|
||||
bay = "市区";
|
||||
break;
|
||||
case "1":
|
||||
bay = "亚龙湾";
|
||||
break;
|
||||
case "2":
|
||||
bay = "大东海";
|
||||
break;
|
||||
case "3":
|
||||
bay = "三亚湾";
|
||||
break;
|
||||
case "4":
|
||||
bay = "海棠湾";
|
||||
break;
|
||||
}
|
||||
data.setBay(bay);
|
||||
// 地址
|
||||
data.setAddress(hotelmanage.getAddress());
|
||||
// 负责人
|
||||
data.setManager(hotelmanage.getManager());
|
||||
// 邮政编码
|
||||
data.setZipcode(hotelmanage.getZipcode());
|
||||
// 电话号码
|
||||
data.setTelephone(hotelmanage.getTelephone());
|
||||
// 手机号码
|
||||
data.setMobile(hotelmanage.getMobile());
|
||||
// 酒店星级,"其他_0","舒适_1","高档_2","豪华_3","一星_4","二星_5","三星_6","四星_7","五星_8"
|
||||
String housegrade = "";
|
||||
switch (hotelmanage.getHousegrade() == null ? "" : hotelmanage
|
||||
.getHousegrade()) {
|
||||
case "0":
|
||||
housegrade = "其他";
|
||||
break;
|
||||
case "1":
|
||||
housegrade = "舒适";
|
||||
break;
|
||||
case "2":
|
||||
housegrade = "高档";
|
||||
break;
|
||||
case "3":
|
||||
housegrade = "豪华";
|
||||
break;
|
||||
case "4":
|
||||
housegrade = "一星";
|
||||
break;
|
||||
case "5":
|
||||
housegrade = "二星";
|
||||
break;
|
||||
case "6":
|
||||
housegrade = "三星";
|
||||
break;
|
||||
case "7":
|
||||
housegrade = "四星";
|
||||
break;
|
||||
case "8":
|
||||
housegrade = "五星";
|
||||
break;
|
||||
}
|
||||
data.setHousegrade(housegrade);
|
||||
// 房间数
|
||||
data.setHousenum(hotelmanage.getHousenum() == null ? "" : String
|
||||
.valueOf(hotelmanage.getHousenum()));
|
||||
// 床位数
|
||||
data.setBednum(hotelmanage.getBednum() == null ? "" : String
|
||||
.valueOf(hotelmanage.getBednum()));
|
||||
// 工商注册登记时间
|
||||
String registertime = "";
|
||||
try {
|
||||
registertime = sdf.format(hotelmanage.getRegistertime());
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
data.setRegistertime(registertime);
|
||||
// 企业注册登记类型
|
||||
data.setRegisterstyle(hotelmanage.getRegisterstyle());
|
||||
// 填表人
|
||||
data.setWriter(hotelmanage.getWriter());
|
||||
// 传真
|
||||
data.setFax(hotelmanage.getFax());
|
||||
// 网址
|
||||
data.setWeburl(hotelmanage.getWeburl());
|
||||
// 邮件
|
||||
data.setEmail(hotelmanage.getEmail());
|
||||
// 审核状态
|
||||
String status = this.getStatus(hotelmanage.getStatus());
|
||||
data.setStatus(status);
|
||||
String districtStatus = this.getStatus(hotelmanage
|
||||
.getDistrictStatus());
|
||||
data.setDistrictStatus(districtStatus);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
public String getStatus(String status) {
|
||||
switch (status) {
|
||||
case "1":
|
||||
status = "未填报";
|
||||
break;
|
||||
case "2":
|
||||
status = "待审核";
|
||||
break;
|
||||
case "3":
|
||||
status = "审核不通过";
|
||||
break;
|
||||
case "4":
|
||||
status = "审核通过";
|
||||
break;
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取涉旅企业基本信息
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return 涉旅企业基本信息
|
||||
*/
|
||||
@RequestMapping(params = "getOtherTravelDetailInfo")
|
||||
@ResponseBody
|
||||
public APPOtherTravel getOtherTravelDetailInfo(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
|
||||
/** 设置响应头允许ajax跨域访问 **/
|
||||
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||
/* 星号表示所有的异域请求都可以接受, */
|
||||
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
|
||||
|
||||
APPOtherTravel data = new APPOtherTravel();
|
||||
|
||||
String userId = request.getParameter("userId");
|
||||
try {
|
||||
OtherTravelInfo otherTravelInfo = systemService.get(
|
||||
OtherTravelInfo.class, userId);
|
||||
data.setId(otherTravelInfo.getId());
|
||||
// 企业名称
|
||||
data.setName(otherTravelInfo.getName());
|
||||
// 负责人
|
||||
data.setPrincipal(otherTravelInfo.getPrincipal());
|
||||
// 联系电话
|
||||
data.setPhone(otherTravelInfo.getPhone());
|
||||
// 企业类型,高尔夫_1","游艇_2","空中飞行_3","机场_4,动车_5
|
||||
String type = "";
|
||||
switch (otherTravelInfo.getType() == null ? "" : otherTravelInfo
|
||||
.getType()) {
|
||||
case "1":
|
||||
type = "高尔夫";
|
||||
break;
|
||||
case "2":
|
||||
type = "游艇";
|
||||
break;
|
||||
case "3":
|
||||
type = "空中飞行";
|
||||
break;
|
||||
case "4":
|
||||
type = "机场";
|
||||
break;
|
||||
case "5":
|
||||
type = "动车";
|
||||
break;
|
||||
}
|
||||
data.setType(type);
|
||||
// 所属区,0-市辖区;1-崖州区;2-海棠区;3-天涯区;4-吉阳区
|
||||
String area = "";
|
||||
switch (otherTravelInfo.getArea() == null ? "" : otherTravelInfo
|
||||
.getArea()) {
|
||||
case "0":
|
||||
area = "市辖区";
|
||||
break;
|
||||
case "1":
|
||||
area = "崖州区";
|
||||
break;
|
||||
case "2":
|
||||
area = "海棠区";
|
||||
break;
|
||||
case "3":
|
||||
area = "天涯区";
|
||||
break;
|
||||
case "4":
|
||||
area = "吉阳区";
|
||||
break;
|
||||
}
|
||||
data.setArea(area);
|
||||
// 详细地址
|
||||
data.setAddress(otherTravelInfo.getAddress());
|
||||
// 邮政编码
|
||||
data.setPostalcode(otherTravelInfo.getPostalcode());
|
||||
// 所在省,默认海南省
|
||||
data.setPrivince(otherTravelInfo.getPrivince());
|
||||
// 所在市,默认三亚市
|
||||
data.setCity(otherTravelInfo.getCity());
|
||||
data.setTel(otherTravelInfo.getMobile());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
package com.zzc.app.login.entity;
|
||||
|
||||
public class APPHotel {
|
||||
|
||||
private String id;
|
||||
// 标牌编码
|
||||
private String code;
|
||||
// 酒店法人
|
||||
private String legalPerson;
|
||||
// 组织机构代码
|
||||
private String organizationNum;
|
||||
// 单位名称
|
||||
private String unitname;
|
||||
// 所属市,默认三亚市
|
||||
private String city;
|
||||
// 所在地区,"市辖区_0","吉阳区_1","崖州区_2","天涯区_3","海棠区_4"
|
||||
private String county;
|
||||
// 所属湾区 0 市区1亚龙湾2大东海3三亚湾 4海棠湾
|
||||
private String bay;
|
||||
// 地址
|
||||
private String address;
|
||||
// 负责人
|
||||
private String manager;
|
||||
// 邮政编码
|
||||
private String zipcode;
|
||||
// 电话号码
|
||||
private String telephone;
|
||||
// 手机号码
|
||||
private String mobile;
|
||||
// 酒店星级,"其他_0","舒适_1","高档_2","豪华_3","一星_4","二星_5","三星_6","四星_7","五星_8"
|
||||
private String housegrade;
|
||||
// 房间数
|
||||
private String housenum;
|
||||
// 床位数
|
||||
private String bednum;
|
||||
// 工商注册登记时间
|
||||
private String registertime;
|
||||
// 企业注册登记类型
|
||||
private String registerstyle;
|
||||
// 填表人
|
||||
private String writer;
|
||||
// 传真
|
||||
private String fax;
|
||||
// 网址
|
||||
private String weburl;
|
||||
// 邮件
|
||||
private String email;
|
||||
// 市级审核状态
|
||||
private String status;
|
||||
// 区级审核状态
|
||||
private String districtStatus;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public void setCode(String code) {
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
public String getLegalPerson() {
|
||||
return legalPerson;
|
||||
}
|
||||
|
||||
public void setLegalPerson(String legalPerson) {
|
||||
this.legalPerson = legalPerson;
|
||||
}
|
||||
|
||||
public String getOrganizationNum() {
|
||||
return organizationNum;
|
||||
}
|
||||
|
||||
public void setOrganizationNum(String organizationNum) {
|
||||
this.organizationNum = organizationNum;
|
||||
}
|
||||
|
||||
public String getUnitname() {
|
||||
return unitname;
|
||||
}
|
||||
|
||||
public void setUnitname(String unitname) {
|
||||
this.unitname = unitname;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getCounty() {
|
||||
return county;
|
||||
}
|
||||
|
||||
public void setCounty(String county) {
|
||||
this.county = county;
|
||||
}
|
||||
|
||||
public String getBay() {
|
||||
return bay;
|
||||
}
|
||||
|
||||
public void setBay(String bay) {
|
||||
this.bay = bay;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getManager() {
|
||||
return manager;
|
||||
}
|
||||
|
||||
public void setManager(String manager) {
|
||||
this.manager = manager;
|
||||
}
|
||||
|
||||
public String getZipcode() {
|
||||
return zipcode;
|
||||
}
|
||||
|
||||
public void setZipcode(String zipcode) {
|
||||
this.zipcode = zipcode;
|
||||
}
|
||||
|
||||
public String getTelephone() {
|
||||
return telephone;
|
||||
}
|
||||
|
||||
public void setTelephone(String telephone) {
|
||||
this.telephone = telephone;
|
||||
}
|
||||
|
||||
public String getMobile() {
|
||||
return mobile;
|
||||
}
|
||||
|
||||
public void setMobile(String mobile) {
|
||||
this.mobile = mobile;
|
||||
}
|
||||
|
||||
public String getHousegrade() {
|
||||
return housegrade;
|
||||
}
|
||||
|
||||
public void setHousegrade(String housegrade) {
|
||||
this.housegrade = housegrade;
|
||||
}
|
||||
|
||||
public String getHousenum() {
|
||||
return housenum;
|
||||
}
|
||||
|
||||
public void setHousenum(String housenum) {
|
||||
this.housenum = housenum;
|
||||
}
|
||||
|
||||
public String getBednum() {
|
||||
return bednum;
|
||||
}
|
||||
|
||||
public void setBednum(String bednum) {
|
||||
this.bednum = bednum;
|
||||
}
|
||||
|
||||
public String getRegistertime() {
|
||||
return registertime;
|
||||
}
|
||||
|
||||
public void setRegistertime(String registertime) {
|
||||
this.registertime = registertime;
|
||||
}
|
||||
|
||||
public String getRegisterstyle() {
|
||||
return registerstyle;
|
||||
}
|
||||
|
||||
public void setRegisterstyle(String registerstyle) {
|
||||
this.registerstyle = registerstyle;
|
||||
}
|
||||
|
||||
public String getWriter() {
|
||||
return writer;
|
||||
}
|
||||
|
||||
public void setWriter(String writer) {
|
||||
this.writer = writer;
|
||||
}
|
||||
|
||||
public String getFax() {
|
||||
return fax;
|
||||
}
|
||||
|
||||
public void setFax(String fax) {
|
||||
this.fax = fax;
|
||||
}
|
||||
|
||||
public String getWeburl() {
|
||||
return weburl;
|
||||
}
|
||||
|
||||
public void setWeburl(String weburl) {
|
||||
this.weburl = weburl;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getDistrictStatus() {
|
||||
return districtStatus;
|
||||
}
|
||||
|
||||
public void setDistrictStatus(String districtStatus) {
|
||||
this.districtStatus = districtStatus;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.zzc.app.login.entity;
|
||||
|
||||
public class APPOtherTravel {
|
||||
private String id;
|
||||
// 企业名称
|
||||
private String name;
|
||||
// 负责人
|
||||
private String principal;
|
||||
// 联系电话
|
||||
private String phone;
|
||||
// 企业类型,高尔夫项目_1","游艇项目_2","空中飞行项目_3","机场项目_4,动车项目_5
|
||||
private String type;
|
||||
// 所属区,0-市辖区;1-崖州区;2-海棠区;3-天涯区;4-吉阳区
|
||||
private String area;
|
||||
// 详细地址
|
||||
private String address;
|
||||
// 邮政编码
|
||||
private String postalcode;
|
||||
// 所在省,默认海南省
|
||||
private String privince;
|
||||
// 所在市,默认三亚市
|
||||
private String city;
|
||||
|
||||
private String tel;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getPrincipal() {
|
||||
return principal;
|
||||
}
|
||||
|
||||
public void setPrincipal(String principal) {
|
||||
this.principal = principal;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public String getArea() {
|
||||
return area;
|
||||
}
|
||||
|
||||
public void setArea(String area) {
|
||||
this.area = area;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getPostalcode() {
|
||||
return postalcode;
|
||||
}
|
||||
|
||||
public void setPostalcode(String postalcode) {
|
||||
this.postalcode = postalcode;
|
||||
}
|
||||
|
||||
public String getPrivince() {
|
||||
return privince;
|
||||
}
|
||||
|
||||
public void setPrivince(String privince) {
|
||||
this.privince = privince;
|
||||
}
|
||||
|
||||
public String getCity() {
|
||||
return city;
|
||||
}
|
||||
|
||||
public void setCity(String city) {
|
||||
this.city = city;
|
||||
}
|
||||
|
||||
public String getTel() {
|
||||
return tel;
|
||||
}
|
||||
|
||||
public void setTel(String tel) {
|
||||
this.tel = tel;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,306 @@
|
||||
package com.zzc.app.login.entity;
|
||||
|
||||
public class APPTraveldata {
|
||||
|
||||
// 主键
|
||||
private String id;
|
||||
// 许可证编号
|
||||
private String licensenum;
|
||||
// 旅行社名称
|
||||
private String name;
|
||||
// 英文名称
|
||||
private String englishname;
|
||||
// 组织机构代码
|
||||
private String organizationnum;
|
||||
// 法人代表
|
||||
private String corporate;
|
||||
// 行政区域代码
|
||||
private String adminnum;
|
||||
// 统一社会信用代码
|
||||
private String province;
|
||||
// 所在地区
|
||||
private String area;
|
||||
// 详细地址
|
||||
private String address;
|
||||
// 邮政编码
|
||||
private String zonecode;
|
||||
// 固定电话
|
||||
private String phone;
|
||||
// 固定电话分机
|
||||
private String phoneextension;
|
||||
// 传真
|
||||
private String fax;
|
||||
// 传真分机
|
||||
private String faxextension;
|
||||
// 手机
|
||||
private String mobile;
|
||||
// 邮箱
|
||||
private String email;
|
||||
// 单位负责人
|
||||
private String principal;
|
||||
// 企业登记注册类型
|
||||
private String registerstyle;
|
||||
// 是否经营出境游
|
||||
private String businessexit;
|
||||
// 是否经营边境游
|
||||
private String businessborder;
|
||||
// 旅行社协会会员
|
||||
private String ismember;
|
||||
// qq
|
||||
private String qq;
|
||||
// 网站
|
||||
private String weburl;
|
||||
// 旅行社等级 0:未评定,1:A级,2:AA级;3:AAA级,4:AAAA级,5:AAAAA级
|
||||
private String sceneSpotlevel;
|
||||
// 工商登记注册时间
|
||||
private String tableDate;
|
||||
// 填表人
|
||||
private String filler;
|
||||
// 填表人电话
|
||||
private String fillerTel;
|
||||
// 批准文号
|
||||
private String accommodationStar;
|
||||
// 旅行社经营场所
|
||||
private String travelAgencyType;
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getLicensenum() {
|
||||
return licensenum;
|
||||
}
|
||||
|
||||
public void setLicensenum(String licensenum) {
|
||||
this.licensenum = licensenum;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getEnglishname() {
|
||||
return englishname;
|
||||
}
|
||||
|
||||
public void setEnglishname(String englishname) {
|
||||
this.englishname = englishname;
|
||||
}
|
||||
|
||||
public String getOrganizationnum() {
|
||||
return organizationnum;
|
||||
}
|
||||
|
||||
public void setOrganizationnum(String organizationnum) {
|
||||
this.organizationnum = organizationnum;
|
||||
}
|
||||
|
||||
public String getCorporate() {
|
||||
return corporate;
|
||||
}
|
||||
|
||||
public void setCorporate(String corporate) {
|
||||
this.corporate = corporate;
|
||||
}
|
||||
|
||||
public String getAdminnum() {
|
||||
return adminnum;
|
||||
}
|
||||
|
||||
public void setAdminnum(String adminnum) {
|
||||
this.adminnum = adminnum;
|
||||
}
|
||||
|
||||
public String getProvince() {
|
||||
return province;
|
||||
}
|
||||
|
||||
public void setProvince(String province) {
|
||||
this.province = province;
|
||||
}
|
||||
|
||||
public String getArea() {
|
||||
return area;
|
||||
}
|
||||
|
||||
public void setArea(String area) {
|
||||
this.area = area;
|
||||
}
|
||||
|
||||
public String getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
public void setAddress(String address) {
|
||||
this.address = address;
|
||||
}
|
||||
|
||||
public String getZonecode() {
|
||||
return zonecode;
|
||||
}
|
||||
|
||||
public void setZonecode(String zonecode) {
|
||||
this.zonecode = zonecode;
|
||||
}
|
||||
|
||||
public String getPhone() {
|
||||
return phone;
|
||||
}
|
||||
|
||||
public void setPhone(String phone) {
|
||||
this.phone = phone;
|
||||
}
|
||||
|
||||
public String getPhoneextension() {
|
||||
return phoneextension;
|
||||
}
|
||||
|
||||
public void setPhoneextension(String phoneextension) {
|
||||
this.phoneextension = phoneextension;
|
||||
}
|
||||
|
||||
public String getFax() {
|
||||
return fax;
|
||||
}
|
||||
|
||||
public void setFax(String fax) {
|
||||
this.fax = fax;
|
||||
}
|
||||
|
||||
public String getFaxextension() {
|
||||
return faxextension;
|
||||
}
|
||||
|
||||
public void setFaxextension(String faxextension) {
|
||||
this.faxextension = faxextension;
|
||||
}
|
||||
|
||||
public String getMobile() {
|
||||
return mobile;
|
||||
}
|
||||
|
||||
public void setMobile(String mobile) {
|
||||
this.mobile = mobile;
|
||||
}
|
||||
|
||||
public String getEmail() {
|
||||
return email;
|
||||
}
|
||||
|
||||
public void setEmail(String email) {
|
||||
this.email = email;
|
||||
}
|
||||
|
||||
public String getPrincipal() {
|
||||
return principal;
|
||||
}
|
||||
|
||||
public void setPrincipal(String principal) {
|
||||
this.principal = principal;
|
||||
}
|
||||
|
||||
public String getRegisterstyle() {
|
||||
return registerstyle;
|
||||
}
|
||||
|
||||
public void setRegisterstyle(String registerstyle) {
|
||||
this.registerstyle = registerstyle;
|
||||
}
|
||||
|
||||
public String getBusinessexit() {
|
||||
return businessexit;
|
||||
}
|
||||
|
||||
public void setBusinessexit(String businessexit) {
|
||||
this.businessexit = businessexit;
|
||||
}
|
||||
|
||||
public String getBusinessborder() {
|
||||
return businessborder;
|
||||
}
|
||||
|
||||
public void setBusinessborder(String businessborder) {
|
||||
this.businessborder = businessborder;
|
||||
}
|
||||
|
||||
public String getIsmember() {
|
||||
return ismember;
|
||||
}
|
||||
|
||||
public void setIsmember(String ismember) {
|
||||
this.ismember = ismember;
|
||||
}
|
||||
|
||||
public String getQq() {
|
||||
return qq;
|
||||
}
|
||||
|
||||
public void setQq(String qq) {
|
||||
this.qq = qq;
|
||||
}
|
||||
|
||||
public String getWeburl() {
|
||||
return weburl;
|
||||
}
|
||||
|
||||
public void setWeburl(String weburl) {
|
||||
this.weburl = weburl;
|
||||
}
|
||||
|
||||
public String getSceneSpotlevel() {
|
||||
return sceneSpotlevel;
|
||||
}
|
||||
|
||||
public void setSceneSpotlevel(String sceneSpotlevel) {
|
||||
this.sceneSpotlevel = sceneSpotlevel;
|
||||
}
|
||||
|
||||
public String getTableDate() {
|
||||
return tableDate;
|
||||
}
|
||||
|
||||
public void setTableDate(String tableDate) {
|
||||
this.tableDate = tableDate;
|
||||
}
|
||||
|
||||
public String getFiller() {
|
||||
return filler;
|
||||
}
|
||||
|
||||
public void setFiller(String filler) {
|
||||
this.filler = filler;
|
||||
}
|
||||
|
||||
public String getFillerTel() {
|
||||
return fillerTel;
|
||||
}
|
||||
|
||||
public void setFillerTel(String fillerTel) {
|
||||
this.fillerTel = fillerTel;
|
||||
}
|
||||
|
||||
public String getAccommodationStar() {
|
||||
return accommodationStar;
|
||||
}
|
||||
|
||||
public void setAccommodationStar(String accommodationStar) {
|
||||
this.accommodationStar = accommodationStar;
|
||||
}
|
||||
|
||||
public String getTravelAgencyType() {
|
||||
return travelAgencyType;
|
||||
}
|
||||
|
||||
public void setTravelAgencyType(String travelAgencyType) {
|
||||
this.travelAgencyType = travelAgencyType;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
package com.zzc.app.notice.controller;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.notice.entity.InformEntity;
|
||||
import com.zzc.web.notice.entity.Notice;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/appservice/appnoticeController")
|
||||
public class AppNoticeController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* 获取通知详情
|
||||
*
|
||||
* @param request
|
||||
* @param userId
|
||||
* @return 通知json
|
||||
*/
|
||||
@RequestMapping(params = "notice", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public String getNotice(HttpServletRequest request, String userId) {
|
||||
Map<String, Object> roleMap = systemService
|
||||
.findOneForJdbc(
|
||||
"select * from t_s_role t where t.id=(select tr.roleid from t_s_role_user tr where tr.userid =?)",
|
||||
userId);
|
||||
String role = roleMap.get("rolename").toString();
|
||||
String response = null;
|
||||
String noticerange = null;
|
||||
if (role.contains("景区")) {
|
||||
noticerange = "1";
|
||||
} else if (role.contains("旅行社")) {
|
||||
noticerange = "2";
|
||||
} else if (role.equals("星级酒店数据上报员")) {
|
||||
noticerange = "3";
|
||||
} else if (role.contains("星级酒店")) {
|
||||
noticerange = "4";
|
||||
} else if (role.contains("机场") || role.contains("动车")
|
||||
|| role.contains("高尔夫") || role.contains("游艇")
|
||||
|| role.contains("空中飞行")) {
|
||||
noticerange = "5";
|
||||
}
|
||||
List<Notice> noticelist = new ArrayList<Notice>();
|
||||
List<InformEntity> appnoticelist = new ArrayList<InformEntity>();
|
||||
if (noticerange != null) {
|
||||
noticelist = systemService
|
||||
.findHql("from Notice n where n.range='0' or n.range=?",
|
||||
noticerange);
|
||||
} else {
|
||||
noticelist = systemService.findHql("from Notice");
|
||||
}
|
||||
Notice notice[] = new Notice[noticelist.size()];
|
||||
InformEntity informEntity[] = new InformEntity[noticelist.size()];
|
||||
for (int i = 0; i < noticelist.size(); i++) {
|
||||
notice[i] = noticelist.get(i);
|
||||
informEntity[i] = new InformEntity();
|
||||
informEntity[i].setId(notice[i].getId());
|
||||
informEntity[i].setInformContent(notice[i].getAppContent());
|
||||
informEntity[i].setInformFrom(notice[i].getSource());
|
||||
informEntity[i].setInformName(notice[i].getTitle());
|
||||
informEntity[i].setInformTime(String.valueOf(notice[i]
|
||||
.getCreateDate() == null ? "" : notice[i].getCreateDate()));
|
||||
if (notice[i].getRange().equals("0")) {
|
||||
notice[i].setRange("全部企业");
|
||||
} else if (notice[i].getRange().equals("1")) {
|
||||
notice[i].setRange("景区");
|
||||
} else if (notice[i].getRange().equals("2")) {
|
||||
notice[i].setRange("旅行社");
|
||||
} else if (notice[i].getRange().equals("3")) {
|
||||
notice[i].setRange("星级酒店");
|
||||
} else if (notice[i].getRange().equals("4")) {
|
||||
notice[i].setRange("所有酒店");
|
||||
} else if (notice[i].getRange().equals("5")) {
|
||||
notice[i].setRange("其他涉旅企业");
|
||||
}
|
||||
informEntity[i].setRange(notice[i].getRange());
|
||||
informEntity[i].setReleaser(notice[i].getAnnouncer());
|
||||
appnoticelist.add(informEntity[i]);
|
||||
}
|
||||
String giveapp = "|success";
|
||||
response = JSON.toJSONString(appnoticelist) + giveapp;
|
||||
return response;
|
||||
}
|
||||
|
||||
/**
|
||||
* 返回通知视图
|
||||
*
|
||||
* @param request
|
||||
* @return 通知视图
|
||||
*/
|
||||
@RequestMapping(params = "detail", method = RequestMethod.GET)
|
||||
public ModelAndView detail(HttpServletRequest request) {
|
||||
String id = request.getParameter("id");
|
||||
Notice notice = systemService.getEntity(Notice.class, id);
|
||||
request.setAttribute("notice", notice);
|
||||
return new ModelAndView("notice/appnotice").addObject("notice", notice);
|
||||
/*
|
||||
* return
|
||||
* "http://192.168.0.106:8080/syly/webpage/notice/appnotice.jsp?id="+id;
|
||||
*/
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,135 @@
|
||||
package com.zzc.app.notice.entity;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* Created by CC on 2017/1/12. 通知实体类,通知界面中使用
|
||||
*/
|
||||
public class InformEntity implements Serializable {
|
||||
|
||||
/**
|
||||
* 通知的名称
|
||||
*/
|
||||
private String informName;
|
||||
|
||||
/**
|
||||
* 通知的时间
|
||||
*/
|
||||
private String informTime;
|
||||
|
||||
/**
|
||||
* 通知的内容
|
||||
*/
|
||||
private String informContent;
|
||||
/**
|
||||
* 通知范围
|
||||
*/
|
||||
private String range;
|
||||
/**
|
||||
* 消息发布者
|
||||
*/
|
||||
private String releaser;
|
||||
/**
|
||||
* 响应码
|
||||
*/
|
||||
private String responseCode;
|
||||
/**
|
||||
* 通知ID
|
||||
*/
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 通知的来源
|
||||
*/
|
||||
private String informFrom;
|
||||
|
||||
public InformEntity() {
|
||||
}
|
||||
|
||||
public InformEntity(String informName, String informTime,
|
||||
String informContent, String range, String releaser,
|
||||
String responseCode, String id, String informFrom) {
|
||||
this.informName = informName;
|
||||
this.informTime = informTime;
|
||||
this.informContent = informContent;
|
||||
this.range = range;
|
||||
this.releaser = releaser;
|
||||
this.responseCode = responseCode;
|
||||
this.id = id;
|
||||
this.informFrom = informFrom;
|
||||
}
|
||||
|
||||
public String getInformName() {
|
||||
return informName;
|
||||
}
|
||||
|
||||
public void setInformName(String informName) {
|
||||
this.informName = informName;
|
||||
}
|
||||
|
||||
public String getInformTime() {
|
||||
return informTime;
|
||||
}
|
||||
|
||||
public void setInformTime(String informTime) {
|
||||
this.informTime = informTime;
|
||||
}
|
||||
|
||||
public String getInformFrom() {
|
||||
return informFrom;
|
||||
}
|
||||
|
||||
public void setInformFrom(String informFrom) {
|
||||
this.informFrom = informFrom;
|
||||
}
|
||||
|
||||
public String getResponseCode() {
|
||||
return responseCode;
|
||||
}
|
||||
|
||||
public void setResponseCode(String responseCode) {
|
||||
this.responseCode = responseCode;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(String id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public String getInformContent() {
|
||||
return informContent;
|
||||
}
|
||||
|
||||
public void setInformContent(String informContent) {
|
||||
this.informContent = informContent;
|
||||
}
|
||||
|
||||
public String getReleaser() {
|
||||
return releaser;
|
||||
}
|
||||
|
||||
public void setReleaser(String releaser) {
|
||||
this.releaser = releaser;
|
||||
}
|
||||
|
||||
public String getRange() {
|
||||
return range;
|
||||
}
|
||||
|
||||
public void setRange(String range) {
|
||||
this.range = range;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "InformEntity{" + "range='" + range + '\'' + ", releaser='"
|
||||
+ releaser + '\'' + ", responseCode='" + responseCode + '\''
|
||||
+ ", id='" + id + '\'' + ", informContent='" + informContent
|
||||
+ '\'' + ", informName='" + informName + '\''
|
||||
+ ", informTime='" + informTime + '\'' + ", informFrom='"
|
||||
+ informFrom + '\'' + '}';
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,392 @@
|
||||
package com.zzc.app.otherTravel.controller;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import net.sf.json.JSONObject;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.otherTravel.entity.AirportMonthlyReportEntity;
|
||||
import com.zzc.web.otherTravel.entity.AirportMonthly;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.sylyUtils.Status;
|
||||
import com.zzc.web.sylyUtils.TimeUtils;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @date: 2017年2月9日
|
||||
* @Author: 龙
|
||||
* @Email:
|
||||
* @FileName: AirportMonthController.java
|
||||
* @Version: 1.0
|
||||
* @About: 保存/展示空中飞行项目接口
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/appservice/appAirportMonthController")
|
||||
public class AirportMonthController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否填报月报
|
||||
*
|
||||
* @param userId
|
||||
* @return 月报实体类
|
||||
*/
|
||||
@RequestMapping(params = "ifhavemonthdata")
|
||||
@ResponseBody
|
||||
public AirportMonthlyReportEntity ifhavemonthdata(String userId) {
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
String repsonse = null;
|
||||
AirportMonthlyReportEntity airportMonthlyReportEntity = new AirportMonthlyReportEntity();
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_airport_monthly` tf WHERE tf.oid=? AND tf.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
AirportMonthly airportMonthly = systemService.get(
|
||||
AirportMonthly.class, (String) list.get(0).get("ID"));
|
||||
|
||||
airportMonthlyReportEntity.setDates(String
|
||||
.valueOf(airportMonthly.getSmonth()));
|
||||
airportMonthlyReportEntity.setUserId(userId);
|
||||
airportMonthlyReportEntity.setPlansortie(String
|
||||
.valueOf(airportMonthly.getPlansortie()));
|
||||
airportMonthlyReportEntity.setActualsortie(String
|
||||
.valueOf(airportMonthly.getActualsortie()));
|
||||
airportMonthlyReportEntity.setPlansortieyear(String
|
||||
.valueOf(airportMonthly.getPlansortieyear()));
|
||||
airportMonthlyReportEntity.setPlanouttraveller(String
|
||||
.valueOf(airportMonthly.getPlanouttraveller()));
|
||||
airportMonthlyReportEntity.setActualouttraveller(String
|
||||
.valueOf(airportMonthly.getActualouttraveller()));
|
||||
|
||||
airportMonthlyReportEntity.setPlanouttravelleryear(String
|
||||
.valueOf(airportMonthly.getPlanouttravelleryear()));
|
||||
airportMonthlyReportEntity.setPlanoutwill(String
|
||||
.valueOf(airportMonthly.getPlanoutwill()));
|
||||
airportMonthlyReportEntity.setActualoutwill(String
|
||||
.valueOf(airportMonthly.getActualoutwill()));
|
||||
airportMonthlyReportEntity.setPlanoutwillyear(String
|
||||
.valueOf(airportMonthly.getPlanoutwillyear()));
|
||||
airportMonthlyReportEntity.setPlanIntegerraveller(String
|
||||
.valueOf(airportMonthly.getPlanIntegerraveller()));
|
||||
|
||||
airportMonthlyReportEntity.setActualIntegerraveller(String
|
||||
.valueOf(airportMonthly.getActualIntegerraveller()));
|
||||
airportMonthlyReportEntity.setPlanIntegerravelleryear(String
|
||||
.valueOf(airportMonthly.getPlanIntegerravelleryear()));
|
||||
airportMonthlyReportEntity.setPlaninwill(String
|
||||
.valueOf(airportMonthly.getPlaninwill()));
|
||||
airportMonthlyReportEntity.setActualinwill(String
|
||||
.valueOf(airportMonthly.getActualinwill()));
|
||||
airportMonthlyReportEntity.setPlaninwillyear(String
|
||||
.valueOf(airportMonthly.getPlaninwillyear()));
|
||||
|
||||
airportMonthlyReportEntity.setPlanthroughputtraveller(String
|
||||
.valueOf(airportMonthly.getPlanthroughputtraveller()));
|
||||
airportMonthlyReportEntity
|
||||
.setActualthroughputtraveller(String
|
||||
.valueOf(airportMonthly
|
||||
.getActualthroughputtraveller()));
|
||||
airportMonthlyReportEntity
|
||||
.setPlanthroughputtravelleryear(String
|
||||
.valueOf(airportMonthly
|
||||
.getPlanthroughputtravelleryear()));
|
||||
airportMonthlyReportEntity.setPlanthroughputwill(String
|
||||
.valueOf(airportMonthly.getPlanthroughputwill()));
|
||||
airportMonthlyReportEntity.setActualthroughputwill(String
|
||||
.valueOf(airportMonthly.getActualthroughputwill()));
|
||||
|
||||
airportMonthlyReportEntity.setPlanthroughputwillyear(String
|
||||
.valueOf(airportMonthly.getPlanthroughputwillyear()));
|
||||
airportMonthlyReportEntity.setReporter(String
|
||||
.valueOf(airportMonthly.getReporter()));
|
||||
if (null != airportMonthly.getReportdate()) {
|
||||
|
||||
airportMonthlyReportEntity.setReportdate(TimeUtils
|
||||
.getMonth(airportMonthly.getReportdate()));
|
||||
|
||||
}
|
||||
String status = getstatus(String.valueOf(airportMonthly
|
||||
.getStatus()));
|
||||
|
||||
airportMonthlyReportEntity.setStatus(status);
|
||||
// flightMonthlyReportEntity;
|
||||
} else {
|
||||
AirportMonthlyReportEntity airportMonthlyReportEntity1 = new AirportMonthlyReportEntity();
|
||||
airportMonthlyReportEntity1.setDates(TimeUtils.getLastMonth());
|
||||
airportMonthlyReportEntity1
|
||||
.setStatus(getstatus(Status.noSumbit));
|
||||
repsonse = JSON.toJSONString(airportMonthlyReportEntity1);
|
||||
return airportMonthlyReportEntity1;
|
||||
}
|
||||
|
||||
}
|
||||
return airportMonthlyReportEntity;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 月报提交
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
@RequestMapping(params = "monthdata", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public String editmonthdata(HttpServletRequest request)
|
||||
throws ParseException {
|
||||
String json = request.getParameter("param");
|
||||
String flag = request.getParameter("flag");
|
||||
JSONObject node = JSONObject.fromObject(json);
|
||||
String repsonse = "error";
|
||||
AirportMonthly airportMonthly = new AirportMonthly();
|
||||
String userId = node.getString("userId");
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_airport_monthly` tf WHERE tf.oid=? AND tf.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
airportMonthly = systemService.get(AirportMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
}
|
||||
airportMonthly.setOtherTravelInfo(otherTravelInfo);
|
||||
airportMonthly.setSmonth(node.getString("dates"));
|
||||
airportMonthly.setOtid(userId);
|
||||
airportMonthly.setDates(new SimpleDateFormat("yyyy-MM").parse(node
|
||||
.getString("dates")));
|
||||
airportMonthly.setPlansortie(node.getString("plansortie")
|
||||
.equals("") ? 0 : Integer.valueOf(node
|
||||
.getString("plansortie")));
|
||||
airportMonthly.setActualsortie(node.getString("actualsortie")
|
||||
.equals("") ? 0 : Integer.valueOf(node
|
||||
.getString("actualsortie")));
|
||||
|
||||
airportMonthly.setPlansortieyear(node.getString("plansortieyear")
|
||||
.equals("") ? 0 : Integer.valueOf(node
|
||||
.getString("plansortieyear")));
|
||||
airportMonthly.setPlanouttraveller(node.getString(
|
||||
"planouttraveller").equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("planouttraveller")));
|
||||
airportMonthly.setActualouttraveller(node.getString(
|
||||
"actualouttraveller").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("actualouttraveller")));
|
||||
airportMonthly.setPlanouttravelleryear(node.getString(
|
||||
"planouttravelleryear").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planouttravelleryear")));
|
||||
airportMonthly.setPlanoutwill(node.getString("planoutwill").equals(
|
||||
"") ? 0.0 : Double.valueOf(node.getString("planoutwill")));
|
||||
|
||||
airportMonthly.setActualoutwill(node.getString("actualoutwill")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("actualoutwill")));
|
||||
airportMonthly.setPlanoutwillyear(node.getString("planoutwillyear")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("planoutwillyear")));
|
||||
airportMonthly.setPlanIntegerraveller(node.getString(
|
||||
"planIntegerraveller").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planIntegerraveller")));
|
||||
airportMonthly.setActualIntegerraveller(node.getString(
|
||||
"actualIntegerraveller").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("actualIntegerraveller")));
|
||||
airportMonthly.setPlanIntegerravelleryear(node.getString(
|
||||
"planIntegerravelleryear").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planIntegerravelleryear")));
|
||||
|
||||
airportMonthly.setPlaninwill(node.getString("planinwill")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("planinwill")));
|
||||
airportMonthly.setActualinwill(node.getString("actualinwill")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("actualinwill")));
|
||||
airportMonthly.setPlaninwillyear(node.getString("planinwillyear")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("planinwillyear")));
|
||||
airportMonthly.setPlanthroughputtraveller(node.getString(
|
||||
"planthroughputtraveller").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planthroughputtraveller")));
|
||||
airportMonthly.setActualthroughputtraveller(node.getString(
|
||||
"actualthroughputtraveller").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("actualthroughputtraveller")));
|
||||
|
||||
airportMonthly.setPlanthroughputtravelleryear(node.getString(
|
||||
"planthroughputtravelleryear").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planthroughputtravelleryear")));
|
||||
airportMonthly.setPlanthroughputwill(node.getString(
|
||||
"planthroughputwill").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planthroughputwill")));
|
||||
airportMonthly.setActualthroughputwill(node.getString(
|
||||
"actualthroughputwill").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("actualthroughputwill")));
|
||||
airportMonthly.setPlanthroughputwillyear(node.getString(
|
||||
"planthroughputwillyear").equals("") ? 0.0 : Double
|
||||
.valueOf(node.getString("planthroughputwillyear")));
|
||||
airportMonthly.setReporter(node.getString("reporter"));
|
||||
|
||||
// airportMonthly.setReportdate(new Date());
|
||||
// airportMonthly.setReporter();
|
||||
|
||||
// airportMonthly.setStatus(Status.noAudit);
|
||||
// airportMonthly.setReporter(node.getString("repoter"));
|
||||
if (flag.equals("1")) {
|
||||
Date date = new Date();
|
||||
airportMonthly.setReportdate(date);
|
||||
airportMonthly.setStatus(Status.noAudit);
|
||||
|
||||
systemService.saveOrUpdate(airportMonthly);
|
||||
|
||||
repsonse = "success";
|
||||
} else if (flag.equals("0")) {
|
||||
airportMonthly.setStatus(Status.noSumbit);
|
||||
systemService.saveOrUpdate(airportMonthly);
|
||||
repsonse = "success";
|
||||
}
|
||||
}
|
||||
return repsonse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有的月报数据
|
||||
*
|
||||
* @throws ParseException
|
||||
*/
|
||||
|
||||
@RequestMapping(params = "allmonthdata")
|
||||
@ResponseBody
|
||||
public String getAllMonthData(HttpServletRequest request)
|
||||
throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String userId = request.getParameter("userId");
|
||||
String response = null;
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
List<AirportMonthly> monthList = this.systemService
|
||||
.findHql(
|
||||
"from AirportMonthly fm where fm.status<>1 and fm.otherTravelInfo=?",
|
||||
otherTravelInfo);
|
||||
List<AirportMonthlyReportEntity> appMonthList = new ArrayList<>();
|
||||
AirportMonthly airportMonth[] = new AirportMonthly[monthList.size()];
|
||||
AirportMonthlyReportEntity airportMonthlyReportEntity[] = new AirportMonthlyReportEntity[monthList
|
||||
.size()];
|
||||
for (int i = 0; i < monthList.size(); i++) {
|
||||
airportMonth[i] = monthList.get(i);
|
||||
airportMonthlyReportEntity[i] = new AirportMonthlyReportEntity();
|
||||
airportMonthlyReportEntity[i].setDates(String
|
||||
.valueOf(airportMonth[i].getSmonth()));
|
||||
airportMonthlyReportEntity[i].setUserId(userId);
|
||||
airportMonthlyReportEntity[i].setPlansortie(String
|
||||
.valueOf(airportMonth[i].getPlansortie()));
|
||||
airportMonthlyReportEntity[i].setActualsortie(String
|
||||
.valueOf(airportMonth[i].getActualsortie()));
|
||||
airportMonthlyReportEntity[i].setPlansortieyear(String
|
||||
.valueOf(airportMonth[i].getPlansortieyear()));
|
||||
airportMonthlyReportEntity[i].setPlanouttraveller(String
|
||||
.valueOf(airportMonth[i].getPlanouttraveller()));
|
||||
airportMonthlyReportEntity[i].setActualouttraveller(String
|
||||
.valueOf(airportMonth[i].getActualouttraveller()));
|
||||
|
||||
airportMonthlyReportEntity[i].setPlanouttravelleryear(String
|
||||
.valueOf(airportMonth[i].getPlanouttravelleryear()));
|
||||
airportMonthlyReportEntity[i].setPlanoutwill(String
|
||||
.valueOf(airportMonth[i].getPlanoutwill()));
|
||||
airportMonthlyReportEntity[i].setActualoutwill(String
|
||||
.valueOf(airportMonth[i].getActualoutwill()));
|
||||
airportMonthlyReportEntity[i].setPlanoutwillyear(String
|
||||
.valueOf(airportMonth[i].getPlanoutwillyear()));
|
||||
airportMonthlyReportEntity[i].setPlanIntegerraveller(String
|
||||
.valueOf(airportMonth[i].getPlanIntegerraveller()));
|
||||
|
||||
airportMonthlyReportEntity[i].setActualIntegerraveller(String
|
||||
.valueOf(airportMonth[i].getActualIntegerraveller()));
|
||||
airportMonthlyReportEntity[i].setPlanIntegerravelleryear(String
|
||||
.valueOf(airportMonth[i].getPlanIntegerravelleryear()));
|
||||
airportMonthlyReportEntity[i].setPlaninwill(String
|
||||
.valueOf(airportMonth[i].getPlaninwill()));
|
||||
airportMonthlyReportEntity[i].setActualinwill(String
|
||||
.valueOf(airportMonth[i].getActualinwill()));
|
||||
airportMonthlyReportEntity[i].setPlaninwillyear(String
|
||||
.valueOf(airportMonth[i].getPlaninwillyear()));
|
||||
|
||||
airportMonthlyReportEntity[i].setPlanthroughputtraveller(String
|
||||
.valueOf(airportMonth[i].getPlanthroughputtraveller()));
|
||||
airportMonthlyReportEntity[i].setActualthroughputtraveller(String
|
||||
.valueOf(airportMonth[i].getActualthroughputtraveller()));
|
||||
airportMonthlyReportEntity[i].setPlanthroughputtravelleryear(String
|
||||
.valueOf(airportMonth[i].getPlanthroughputtravelleryear()));
|
||||
airportMonthlyReportEntity[i].setPlanthroughputwill(String
|
||||
.valueOf(airportMonth[i].getPlanthroughputwill()));
|
||||
airportMonthlyReportEntity[i].setActualthroughputwill(String
|
||||
.valueOf(airportMonth[i].getActualthroughputwill()));
|
||||
|
||||
airportMonthlyReportEntity[i].setPlanthroughputwillyear(String
|
||||
.valueOf(airportMonth[i].getPlanthroughputwillyear()));
|
||||
airportMonthlyReportEntity[i].setReporter(String
|
||||
.valueOf(airportMonth[i].getReporter()));
|
||||
airportMonthlyReportEntity[i].setReportdate(TimeUtils
|
||||
.getMonth(airportMonth[i].getReportdate()));
|
||||
String status = getstatus(String.valueOf(airportMonth[i]
|
||||
.getStatus()));
|
||||
airportMonthlyReportEntity[i].setStatus(status);
|
||||
appMonthList.add(airportMonthlyReportEntity[i]);
|
||||
|
||||
}
|
||||
response = JSON.toJSONString(appMonthList);
|
||||
return response;
|
||||
}
|
||||
|
||||
public static String getstatus(String status) {
|
||||
if (status.equals(Status.noSumbit)) {
|
||||
status = "未填报";
|
||||
} else if (status.equals(Status.noAudit)) {
|
||||
status = "未审核";
|
||||
} else if (status.equals(Status.notAudit)) {
|
||||
status = "管理员已审核(审核不通过)";
|
||||
} else if (status.equals(Status.passAudit)) {
|
||||
status = "管理员已审核(审核通过)";
|
||||
} else if (status.equals(Status.notAuditByP)) {
|
||||
status = "省已审核 审核结果:不通过";
|
||||
} else if (status.equals(Status.passAuditByP)) {
|
||||
status = "省已审核 审核结果:通过";
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.zzc.app.otherTravel.controller;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.login.entity.APPOtherTravel;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/appservice/basicinfocontroller")
|
||||
public class BasicInfoController {
|
||||
|
||||
private SystemService systemService;
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 基本信息填报
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return 成功标志
|
||||
*/
|
||||
@RequestMapping(params = "fillBasicInfo")
|
||||
@ResponseBody
|
||||
public String fillBasicInfo(HttpServletRequest request,
|
||||
HttpServletResponse response) {
|
||||
|
||||
/** 设置响应头允许ajax跨域访问 **/
|
||||
response.setHeader("Access-Control-Allow-Origin", "*");
|
||||
/* 星号表示所有的异域请求都可以接受, */
|
||||
response.setHeader("Access-Control-Allow-Methods", "GET,POST");
|
||||
|
||||
String tip = "success";
|
||||
|
||||
try {
|
||||
request.setCharacterEncoding("UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
String msg = request.getParameter("param");
|
||||
String userId = request.getParameter("userId");
|
||||
|
||||
APPOtherTravel appTravelInfo = null;
|
||||
|
||||
try {
|
||||
appTravelInfo = JSON.parseObject(msg, APPOtherTravel.class);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
tip = "数据转化失败!";
|
||||
return tip;
|
||||
}
|
||||
|
||||
try {
|
||||
OtherTravelInfo otherTravelInfo = systemService.get(
|
||||
OtherTravelInfo.class, userId);
|
||||
// 企业名称
|
||||
otherTravelInfo.setName(appTravelInfo.getName());
|
||||
// 负责人
|
||||
otherTravelInfo.setPrincipal(appTravelInfo.getPrincipal());
|
||||
// 联系电话
|
||||
otherTravelInfo.setPhone(appTravelInfo.getPhone());
|
||||
// 详细地址
|
||||
otherTravelInfo.setAddress(appTravelInfo.getAddress());
|
||||
// 邮编
|
||||
otherTravelInfo.setPostalcode(appTravelInfo.getPostalcode());
|
||||
otherTravelInfo.setMobile(appTravelInfo.getTel());
|
||||
/*
|
||||
* String county = appTravelInfo.getArea(); switch (county) { case
|
||||
* "市辖区": county = "0"; break; case "崖州区": county = "1"; break; case
|
||||
* "海棠区": county = "2"; break; case "天涯区": county = "3"; break; case
|
||||
* "吉阳区": county = "4"; break; } otherTravelInfo.setArea(county)
|
||||
*/
|
||||
systemService.saveOrUpdate(otherTravelInfo);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
tip = "操作失败";
|
||||
}
|
||||
return tip;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,229 @@
|
||||
package com.zzc.app.otherTravel.controller;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import net.sf.json.JSONObject;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.otherTravel.entity.BoatMonthlyReportEntity;
|
||||
import com.zzc.web.otherTravel.entity.BoatMonthly;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.sylyUtils.Status;
|
||||
import com.zzc.web.sylyUtils.TimeUtils;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @date: 2017年2月9日
|
||||
* @Author: 龙
|
||||
* @Email:
|
||||
* @FileName: golfMonthController.java
|
||||
* @Version: 1.0
|
||||
* @About: 保存/展示空中飞行项目接口
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/appservice/appBoatMonthController")
|
||||
public class BoatMonthController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否填报月报
|
||||
*
|
||||
* @param userId
|
||||
* @return 月报实体类
|
||||
*/
|
||||
@RequestMapping(params = "ifhavemonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public BoatMonthlyReportEntity ifhavemonthdata(String userId) {
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
String repsonse = null;
|
||||
BoatMonthlyReportEntity boatMonthlyReportEntity = new BoatMonthlyReportEntity();
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份高尔夫项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_boat_monthly` tb WHERE tb.oid=? AND tb.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
BoatMonthly boatMonthly = systemService.get(BoatMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
|
||||
boatMonthlyReportEntity.setDates(String.valueOf(boatMonthly
|
||||
.getSmonth()));
|
||||
boatMonthlyReportEntity.setUserId(userId);
|
||||
boatMonthlyReportEntity.setIncome(String.valueOf(boatMonthly
|
||||
.getIncome()));
|
||||
boatMonthlyReportEntity.setRecepNum(String.valueOf(boatMonthly
|
||||
.getRecepNum()));
|
||||
boatMonthlyReportEntity.setReporter(String.valueOf(boatMonthly
|
||||
.getReporter()));
|
||||
String status = getstatus(String.valueOf(boatMonthly
|
||||
.getStatus()));
|
||||
boatMonthlyReportEntity.setStatus(status);
|
||||
if (null != boatMonthly.getWriteDate()) {
|
||||
boatMonthlyReportEntity.setWriteDate(TimeUtils
|
||||
.getMonth(boatMonthly.getWriteDate()));
|
||||
}
|
||||
} else {
|
||||
BoatMonthlyReportEntity boatMonthlyReportEntity1 = new BoatMonthlyReportEntity();
|
||||
boatMonthlyReportEntity1.setDates(TimeUtils.getLastMonth());
|
||||
boatMonthlyReportEntity1.setStatus(getstatus(Status.noSumbit));
|
||||
repsonse = JSON.toJSONString(boatMonthlyReportEntity1);
|
||||
return boatMonthlyReportEntity1;
|
||||
}
|
||||
|
||||
}
|
||||
return boatMonthlyReportEntity;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 月报提交
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
|
||||
@RequestMapping(params = "monthdata", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public String editmonthdata(HttpServletRequest request)
|
||||
throws ParseException {
|
||||
String json = request.getParameter("param");
|
||||
String flag = request.getParameter("flag");
|
||||
JSONObject node = JSONObject.fromObject(json);
|
||||
String repsonse = "error";
|
||||
BoatMonthly boatMonthly = new BoatMonthly();
|
||||
String userId = node.getString("userId");
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_boat_monthly` tb WHERE tb.oid=? AND tb.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
boatMonthly = systemService.get(BoatMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
}
|
||||
boatMonthly.setOtherTravelInfo(otherTravelInfo);
|
||||
boatMonthly.setOtid(userId);
|
||||
boatMonthly.setDates(new SimpleDateFormat("yyyy-MM").parse(node
|
||||
.getString("dates")));
|
||||
boatMonthly.setIncome(node.getString("income").equals("") ? 0.0
|
||||
: Double.valueOf(node.getString("income")));
|
||||
boatMonthly.setRecepNum(node.getString("recepNum").equals("") ? 0
|
||||
: Integer.valueOf(node.getString("recepNum")));
|
||||
boatMonthly.setSmonth(node.getString("dates"));
|
||||
boatMonthly.setReporter(node.getString("reporter"));
|
||||
if (flag.equals("1")) {
|
||||
Date date = new Date();
|
||||
boatMonthly.setWriteDate(date);
|
||||
boatMonthly.setStatus(Status.noAudit);
|
||||
systemService.saveOrUpdate(boatMonthly);
|
||||
repsonse = "success";
|
||||
} else if (flag.equals("0")) {
|
||||
boatMonthly.setStatus(Status.noSumbit);
|
||||
systemService.saveOrUpdate(boatMonthly);
|
||||
repsonse = "success";
|
||||
}
|
||||
}
|
||||
return repsonse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有的月报数据
|
||||
*
|
||||
* @throws ParseException
|
||||
*/
|
||||
|
||||
@RequestMapping(params = "allmonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public String getAllMonthData(HttpServletRequest request, String userId)
|
||||
throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String response = null;
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
List<BoatMonthly> monthList = this.systemService
|
||||
.findHql(
|
||||
"from BoatMonthly bt where bt.status <> 1 and bt.otherTravelInfo=?",
|
||||
otherTravelInfo);
|
||||
List<BoatMonthlyReportEntity> appMonthList = new ArrayList<>();
|
||||
BoatMonthly boatMonth[] = new BoatMonthly[monthList.size()];
|
||||
BoatMonthlyReportEntity boatMonthlyReportEntity[] = new BoatMonthlyReportEntity[monthList
|
||||
.size()];
|
||||
for (int i = 0; i < monthList.size(); i++) {
|
||||
boatMonth[i] = monthList.get(i);
|
||||
boatMonthlyReportEntity[i] = new BoatMonthlyReportEntity();
|
||||
boatMonthlyReportEntity[i].setDates(String.valueOf(boatMonth[i]
|
||||
.getSmonth()));
|
||||
boatMonthlyReportEntity[i].setUserId(userId);
|
||||
boatMonthlyReportEntity[i].setIncome(String.valueOf(boatMonth[i]
|
||||
.getIncome()));
|
||||
boatMonthlyReportEntity[i].setRecepNum(String.valueOf(boatMonth[i]
|
||||
.getRecepNum()));
|
||||
boatMonthlyReportEntity[i].setReporter(String.valueOf(boatMonth[i]
|
||||
.getReporter()));
|
||||
String status = getstatus(String.valueOf(boatMonth[i].getStatus()));
|
||||
boatMonthlyReportEntity[i].setStatus(status);
|
||||
boatMonthlyReportEntity[i].setWriteDate(TimeUtils
|
||||
.getMonth(boatMonth[i].getWriteDate()));
|
||||
appMonthList.add(boatMonthlyReportEntity[i]);
|
||||
}
|
||||
response = JSON.toJSONString(appMonthList);
|
||||
return response;
|
||||
}
|
||||
|
||||
public static String getstatus(String status) {
|
||||
if (status.equals(Status.noSumbit)) {
|
||||
status = "未填报";
|
||||
|
||||
} else if (status.equals(Status.noAudit)) {
|
||||
status = "未审核";
|
||||
} else if (status.equals(Status.notAudit)) {
|
||||
status = "管理员已审核(审核不通过)";
|
||||
} else if (status.equals(Status.passAudit)) {
|
||||
status = "管理员已审核(审核通过)";
|
||||
} else if (status.equals(Status.notAuditByP)) {
|
||||
status = "省已审核 审核结果:不通过";
|
||||
} else if (status.equals(Status.passAuditByP)) {
|
||||
status = "省已审核 审核结果:通过";
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,239 @@
|
||||
package com.zzc.app.otherTravel.controller;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import net.sf.json.JSONObject;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.otherTravel.entity.FlightMonthlyReportEntity;
|
||||
import com.zzc.web.otherTravel.entity.FlightMonthly;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.sylyUtils.Status;
|
||||
import com.zzc.web.sylyUtils.TimeUtils;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @date: 2017年2月9日
|
||||
* @Author: 龙
|
||||
* @Email:
|
||||
* @FileName: FlightMonthController.java
|
||||
* @Version: 1.0
|
||||
* @About: 保存/展示空中飞行项目接口
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/appservice/appFlightMonthController")
|
||||
public class FlightMonthController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否填报月报
|
||||
*
|
||||
* @param userId
|
||||
* @return 月报实体类
|
||||
*/
|
||||
@RequestMapping(params = "ifhavemonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public FlightMonthlyReportEntity ifhavemonthdata(String userId) {
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
String repsonse = null;
|
||||
FlightMonthlyReportEntity flightMonthlyReportEntity = new FlightMonthlyReportEntity();
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_flight_monthly` tf WHERE tf.otravel_id=? AND tf.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
FlightMonthly flightMonthly = systemService.get(
|
||||
FlightMonthly.class, (String) list.get(0).get("ID"));
|
||||
|
||||
flightMonthlyReportEntity.setDates(String.valueOf(flightMonthly
|
||||
.getSmonth()));
|
||||
flightMonthlyReportEntity.setUserId(userId);
|
||||
flightMonthlyReportEntity.setBusinessincome(String
|
||||
.valueOf(flightMonthly.getBusinessincome()));
|
||||
flightMonthlyReportEntity.setFlighttimes(String
|
||||
.valueOf(flightMonthly.getFlighttimes()));
|
||||
flightMonthlyReportEntity.setReceptionnum(String
|
||||
.valueOf(flightMonthly.getReceptionnum()));
|
||||
flightMonthlyReportEntity.setReporter(String
|
||||
.valueOf(flightMonthly.getReporter()));
|
||||
String status = getstatus(String.valueOf(flightMonthly
|
||||
.getStatus()));
|
||||
flightMonthlyReportEntity.setStatus(status);
|
||||
if (null != flightMonthly.getWriteDate()) {
|
||||
|
||||
flightMonthlyReportEntity.setWriteDate(TimeUtils
|
||||
.getMonth(flightMonthly.getWriteDate()));
|
||||
// flightMonthlyReportEntity;
|
||||
}
|
||||
} else {
|
||||
FlightMonthlyReportEntity flightMonthlyReportEntity1 = new FlightMonthlyReportEntity();
|
||||
flightMonthlyReportEntity1.setDates(TimeUtils.getLastMonth());
|
||||
flightMonthlyReportEntity1
|
||||
.setStatus(getstatus(Status.noSumbit));
|
||||
repsonse = JSON.toJSONString(flightMonthlyReportEntity1);
|
||||
return flightMonthlyReportEntity1;
|
||||
}
|
||||
|
||||
}
|
||||
return flightMonthlyReportEntity;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 月报提交
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
@RequestMapping(params = "monthdata", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public String editmonthdata(HttpServletRequest request)
|
||||
throws ParseException {
|
||||
String json = request.getParameter("param");
|
||||
String flag = request.getParameter("flag");
|
||||
JSONObject node = JSONObject.fromObject(json);
|
||||
String repsonse = "error";
|
||||
FlightMonthly flightMonthly = new FlightMonthly();
|
||||
String userId = node.getString("userId");
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_flight_monthly` tf WHERE tf.oid=? AND tf.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
flightMonthly = systemService.get(FlightMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
}
|
||||
flightMonthly.setOtherTravelInfo(otherTravelInfo);
|
||||
flightMonthly.setOtid(userId);
|
||||
flightMonthly.setDates(new SimpleDateFormat("yyyy-MM").parse(node
|
||||
.getString("dates")));
|
||||
flightMonthly.setBusinessincome(node.getString("businessincome")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("businessincome")));
|
||||
flightMonthly.setFlighttimes(node.getString("flighttimes").equals(
|
||||
"") ? 0 : Integer.valueOf(node.getString("flighttimes")));
|
||||
flightMonthly.setReceptionnum(node.getString("receptionnum")
|
||||
.equals("") ? 0 : Integer.valueOf(node
|
||||
.getString("receptionnum")));
|
||||
flightMonthly.setSmonth(node.getString("dates"));
|
||||
flightMonthly.setReporter(node.getString("reporter"));
|
||||
// flightMonthly.setWriteDate(new Date());
|
||||
if (flag.equals("1")) {
|
||||
Date date = new Date();
|
||||
flightMonthly.setWriteDate(date);
|
||||
flightMonthly.setStatus(Status.noAudit);
|
||||
systemService.saveOrUpdate(flightMonthly);
|
||||
repsonse = "success";
|
||||
} else if (flag.equals("0")) {
|
||||
flightMonthly.setStatus(Status.noSumbit);
|
||||
systemService.saveOrUpdate(flightMonthly);
|
||||
repsonse = "success";
|
||||
}
|
||||
}
|
||||
return repsonse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有的月报数据
|
||||
*
|
||||
* @throws ParseException
|
||||
*/
|
||||
@RequestMapping(params = "allmonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public String getAllMonthData(HttpServletRequest request, String userId)
|
||||
throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String response = null;
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
List<FlightMonthly> monthList = this.systemService
|
||||
.findHql(
|
||||
"from FlightMonthly fm where fm.status <> 1 and fm.otherTravelInfo=?",
|
||||
otherTravelInfo);
|
||||
List<FlightMonthlyReportEntity> appMonthList = new ArrayList<>();
|
||||
FlightMonthly flightMonth[] = new FlightMonthly[monthList.size()];
|
||||
FlightMonthlyReportEntity flightMonthlyReportEntity[] = new FlightMonthlyReportEntity[monthList
|
||||
.size()];
|
||||
for (int i = 0; i < monthList.size(); i++) {
|
||||
flightMonth[i] = monthList.get(i);
|
||||
flightMonthlyReportEntity[i] = new FlightMonthlyReportEntity();
|
||||
flightMonthlyReportEntity[i].setDates(String.valueOf(flightMonth[i]
|
||||
.getSmonth()));
|
||||
flightMonthlyReportEntity[i].setUserId(userId);
|
||||
flightMonthlyReportEntity[i].setBusinessincome(String
|
||||
.valueOf(flightMonth[i].getBusinessincome()));
|
||||
flightMonthlyReportEntity[i].setFlighttimes(String
|
||||
.valueOf(flightMonth[i].getFlighttimes()));
|
||||
flightMonthlyReportEntity[i].setReceptionnum(String
|
||||
.valueOf(flightMonth[i].getReceptionnum()));
|
||||
flightMonthlyReportEntity[i].setReporter(String
|
||||
.valueOf(flightMonth[i].getReporter()));
|
||||
String status = getstatus(String
|
||||
.valueOf(flightMonth[i].getStatus()));
|
||||
flightMonthlyReportEntity[i].setStatus(status);
|
||||
flightMonthlyReportEntity[i].setWriteDate(TimeUtils
|
||||
.getMonth(flightMonth[i].getWriteDate()));
|
||||
appMonthList.add(flightMonthlyReportEntity[i]);
|
||||
}
|
||||
response = JSON.toJSONString(appMonthList);
|
||||
return response;
|
||||
}
|
||||
|
||||
public static String getstatus(String status) {
|
||||
if (status.equals(Status.noSumbit)) {
|
||||
status = "未填报";
|
||||
} else if (status.equals(Status.noAudit)) {
|
||||
status = "未审核";
|
||||
} else if (status.equals(Status.notAudit)) {
|
||||
status = "管理员已审核(审核不通过)";
|
||||
} else if (status.equals(Status.passAudit)) {
|
||||
status = "管理员已审核(审核通过)";
|
||||
} else if (status.equals(Status.notAuditByP)) {
|
||||
status = "省已审核 审核结果:不通过";
|
||||
} else if (status.equals(Status.passAuditByP)) {
|
||||
status = "省已审核 审核结果:通过";
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,228 @@
|
||||
package com.zzc.app.otherTravel.controller;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import net.sf.json.JSONObject;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.otherTravel.entity.GolfMonthlyReportEntity;
|
||||
import com.zzc.web.otherTravel.entity.GolfMonthly;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.sylyUtils.Status;
|
||||
import com.zzc.web.sylyUtils.TimeUtils;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @date: 2017年2月9日
|
||||
* @Author: 龙
|
||||
* @Email:
|
||||
* @FileName: golfMonthController.java
|
||||
* @Version: 1.0
|
||||
* @About: 保存/展示空中飞行项目接口
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/appservice/appGolfMonthController")
|
||||
public class GolfMonthController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否填报月报
|
||||
*
|
||||
* @param userId
|
||||
* @return 月报实体类
|
||||
*/
|
||||
@RequestMapping(params = "ifhavemonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public GolfMonthlyReportEntity ifhavemonthdata(String userId) {
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
String repsonse = null;
|
||||
GolfMonthlyReportEntity golfMonthlyReportEntity = new GolfMonthlyReportEntity();
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份高尔夫项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_golf_monthly` tg WHERE tg.oid=? AND tg.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
GolfMonthly golfMonthly = systemService.get(GolfMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
|
||||
golfMonthlyReportEntity.setDates(String.valueOf(golfMonthly
|
||||
.getSmonth()));
|
||||
golfMonthlyReportEntity.setUserId(userId);
|
||||
golfMonthlyReportEntity.setBusinessincome(String
|
||||
.valueOf(golfMonthly.getBusinessincome()));
|
||||
golfMonthlyReportEntity.setReceptionnum(String
|
||||
.valueOf(golfMonthly.getReceptionnum()));
|
||||
golfMonthlyReportEntity.setReporter(String.valueOf(golfMonthly
|
||||
.getReporter()));
|
||||
String status = getstatus(String.valueOf(golfMonthly
|
||||
.getStatus()));
|
||||
golfMonthlyReportEntity.setStatus(status);
|
||||
if (null != golfMonthly.getWriteDate()) {
|
||||
golfMonthlyReportEntity.setWriteDate(TimeUtils
|
||||
.getMonth(golfMonthly.getWriteDate()));
|
||||
}
|
||||
// flightMonthlyReportEntity;
|
||||
} else {
|
||||
GolfMonthlyReportEntity golfMonthlyReportEntity1 = new GolfMonthlyReportEntity();
|
||||
golfMonthlyReportEntity1.setDates(TimeUtils.getLastMonth());
|
||||
golfMonthlyReportEntity1.setStatus(getstatus(Status.noSumbit));
|
||||
repsonse = JSON.toJSONString(golfMonthlyReportEntity1);
|
||||
return golfMonthlyReportEntity1;
|
||||
}
|
||||
|
||||
}
|
||||
return golfMonthlyReportEntity;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 月报提交
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
@RequestMapping(params = "monthdata", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public String editmonthdata(HttpServletRequest request)
|
||||
throws ParseException {
|
||||
String json = request.getParameter("param");
|
||||
String flag = request.getParameter("flag");
|
||||
JSONObject node = JSONObject.fromObject(json);
|
||||
String repsonse = "error";
|
||||
GolfMonthly golfMonthly = new GolfMonthly();
|
||||
String userId = node.getString("userId");
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_golf_monthly` tg WHERE tg.oid=? AND tg.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
golfMonthly = systemService.get(GolfMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
}
|
||||
golfMonthly.setOtherTravelInfo(otherTravelInfo);
|
||||
golfMonthly.setOtid(userId);
|
||||
golfMonthly.setDates(new SimpleDateFormat("yyyy-MM").parse(node
|
||||
.getString("dates")));
|
||||
golfMonthly.setBusinessincome(node.getString("businessincome")
|
||||
.equals("") ? 0.0 : Double.valueOf(node
|
||||
.getString("businessincome")));
|
||||
golfMonthly.setReceptionnum(node.getString("receptionnum").equals(
|
||||
"") ? 0 : Integer.valueOf(node.getString("receptionnum")));
|
||||
golfMonthly.setSmonth(node.getString("dates"));
|
||||
golfMonthly.setReporter(node.getString("reporter"));
|
||||
if (flag.equals("1")) {
|
||||
Date date = new Date();
|
||||
golfMonthly.setWriteDate(date);
|
||||
golfMonthly.setStatus(Status.noAudit);
|
||||
systemService.saveOrUpdate(golfMonthly);
|
||||
repsonse = "success";
|
||||
} else if (flag.equals("0")) {
|
||||
golfMonthly.setStatus(Status.noSumbit);
|
||||
systemService.saveOrUpdate(golfMonthly);
|
||||
repsonse = "success";
|
||||
}
|
||||
}
|
||||
return repsonse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有的月报数据
|
||||
*
|
||||
* @throws ParseException
|
||||
*/
|
||||
@RequestMapping(params = "allmonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public String getAllMonthData(HttpServletRequest request, String userId)
|
||||
throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String response = null;
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
List<GolfMonthly> monthList = this.systemService
|
||||
.findHql(
|
||||
"from GolfMonthly gf where gf.status <> 1 and gf.otherTravelInfo=?",
|
||||
otherTravelInfo);
|
||||
List<GolfMonthlyReportEntity> appMonthList = new ArrayList<>();
|
||||
GolfMonthly golfMonth[] = new GolfMonthly[monthList.size()];
|
||||
GolfMonthlyReportEntity golfMonthlyReportEntity[] = new GolfMonthlyReportEntity[monthList
|
||||
.size()];
|
||||
for (int i = 0; i < monthList.size(); i++) {
|
||||
golfMonth[i] = monthList.get(i);
|
||||
golfMonthlyReportEntity[i] = new GolfMonthlyReportEntity();
|
||||
golfMonthlyReportEntity[i].setDates(String.valueOf(golfMonth[i]
|
||||
.getSmonth()));
|
||||
golfMonthlyReportEntity[i].setUserId(userId);
|
||||
golfMonthlyReportEntity[i].setBusinessincome(String
|
||||
.valueOf(golfMonth[i].getBusinessincome()));
|
||||
golfMonthlyReportEntity[i].setReceptionnum(String
|
||||
.valueOf(golfMonth[i].getReceptionnum()));
|
||||
golfMonthlyReportEntity[i].setReporter(String.valueOf(golfMonth[i]
|
||||
.getReporter()));
|
||||
String status = getstatus(String.valueOf(golfMonth[i].getStatus()));
|
||||
golfMonthlyReportEntity[i].setStatus(status);
|
||||
golfMonthlyReportEntity[i].setWriteDate(TimeUtils
|
||||
.getMonth(golfMonth[i].getWriteDate()));
|
||||
appMonthList.add(golfMonthlyReportEntity[i]);
|
||||
}
|
||||
response = JSON.toJSONString(appMonthList);
|
||||
return response;
|
||||
}
|
||||
|
||||
public static String getstatus(String status) {
|
||||
if (status.equals(Status.noSumbit)) {
|
||||
status = "未填报";
|
||||
} else if (status.equals(Status.noAudit)) {
|
||||
status = "未审核";
|
||||
} else if (status.equals(Status.notAudit)) {
|
||||
status = "管理员已审核(审核不通过)";
|
||||
} else if (status.equals(Status.passAudit)) {
|
||||
status = "管理员已审核(审核通过)";
|
||||
} else if (status.equals(Status.notAuditByP)) {
|
||||
status = "省已审核 审核结果:不通过";
|
||||
} else if (status.equals(Status.passAuditByP)) {
|
||||
status = "省已审核 审核结果:通过";
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
package com.zzc.app.otherTravel.controller;
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import net.sf.json.JSONObject;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMethod;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.zzc.app.otherTravel.entity.MotorcarMonthlyReportEntity;
|
||||
import com.zzc.web.otherTravel.entity.MotorcarMonthly;
|
||||
import com.zzc.web.otherTravel.entity.OtherTravelInfo;
|
||||
import com.zzc.web.sylyUtils.Status;
|
||||
import com.zzc.web.sylyUtils.TimeUtils;
|
||||
import com.zzc.web.system.service.SystemService;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @date: 2017年2月9日
|
||||
* @Author: 龙
|
||||
* @Email:
|
||||
* @FileName: golfMonthController.java
|
||||
* @Version: 1.0
|
||||
* @About: 保存/展示动车项目接口
|
||||
*/
|
||||
@Controller
|
||||
@RequestMapping("/appservice/appMotorcarMonthController")
|
||||
public class MotorcarMonthController {
|
||||
private SystemService systemService;
|
||||
|
||||
public SystemService getSystemService() {
|
||||
return systemService;
|
||||
}
|
||||
|
||||
@Autowired
|
||||
public void setSystemService(SystemService systemService) {
|
||||
this.systemService = systemService;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否填报月报
|
||||
*
|
||||
* @param userId
|
||||
* @return 月报实体类
|
||||
*/
|
||||
@RequestMapping(params = "ifhavemonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public MotorcarMonthlyReportEntity ifhavemonthdata(String userId) {
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
String repsonse = null;
|
||||
MotorcarMonthlyReportEntity motorcarMonthlyReportEntity = new MotorcarMonthlyReportEntity();
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份动车项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_motorcar_monthly` tm WHERE tm.otravel_id=? AND tm.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
MotorcarMonthly motorcarMonthly = systemService.get(
|
||||
MotorcarMonthly.class, (String) list.get(0).get("ID"));
|
||||
|
||||
motorcarMonthlyReportEntity.setDates(String
|
||||
.valueOf(motorcarMonthly.getSmonth()));
|
||||
motorcarMonthlyReportEntity.setUserId(userId);
|
||||
motorcarMonthlyReportEntity.setInnum(String
|
||||
.valueOf(motorcarMonthly.getInnum()));
|
||||
motorcarMonthlyReportEntity.setOutnum(String
|
||||
.valueOf(motorcarMonthly.getOutnum()));
|
||||
motorcarMonthlyReportEntity.setThroughput(String
|
||||
.valueOf(motorcarMonthly.getThroughput()));
|
||||
motorcarMonthlyReportEntity.setReporter(String
|
||||
.valueOf(motorcarMonthly.getReporter()));
|
||||
String status = getstatus(String.valueOf(motorcarMonthly
|
||||
.getStatus()));
|
||||
motorcarMonthlyReportEntity.setStatus(status);
|
||||
if (null != motorcarMonthly.getWriteDate()) {
|
||||
motorcarMonthlyReportEntity.setWriteDate(TimeUtils
|
||||
.getMonth(motorcarMonthly.getWriteDate()));
|
||||
}
|
||||
// flightMonthlyReportEntity;
|
||||
} else {
|
||||
MotorcarMonthlyReportEntity motorcarMonthlyReportEntity1 = new MotorcarMonthlyReportEntity();
|
||||
motorcarMonthlyReportEntity1.setDates(TimeUtils.getLastMonth());
|
||||
motorcarMonthlyReportEntity1
|
||||
.setStatus(getstatus(Status.noSumbit));
|
||||
repsonse = JSON.toJSONString(motorcarMonthlyReportEntity1);
|
||||
return motorcarMonthlyReportEntity1;
|
||||
}
|
||||
|
||||
}
|
||||
return motorcarMonthlyReportEntity;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 月报提交
|
||||
*
|
||||
* @param json
|
||||
* @return
|
||||
* @throws ParseException
|
||||
*/
|
||||
|
||||
@RequestMapping(params = "monthdata", method = RequestMethod.POST)
|
||||
@ResponseBody
|
||||
public String editmonthdata(HttpServletRequest request)
|
||||
throws ParseException {
|
||||
String json = request.getParameter("param");
|
||||
String flag = request.getParameter("flag");
|
||||
JSONObject node = JSONObject.fromObject(json);
|
||||
String repsonse = "error";
|
||||
MotorcarMonthly motorcarMonthly = new MotorcarMonthly();
|
||||
String userId = node.getString("userId");
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
if (otherTravelInfolist.size() > 0) {
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
String uid = otherTravelInfo.getId();
|
||||
String lastMonth = TimeUtils.getLastMonth();
|
||||
// 获取当前年份飞行项目的月报列表
|
||||
List<Map<String, Object>> list = systemService
|
||||
.findForJdbc(
|
||||
"SELECT * FROM `t_motorcar_monthly` tm WHERE tm.oid=? AND tm.smonth LIKE ?",
|
||||
uid, lastMonth);
|
||||
if (list.size() > 0) {
|
||||
motorcarMonthly = systemService.get(MotorcarMonthly.class,
|
||||
(String) list.get(0).get("ID"));
|
||||
}
|
||||
motorcarMonthly.setOtherTravelInfo(otherTravelInfo);
|
||||
motorcarMonthly.setOtid(userId);
|
||||
motorcarMonthly.setDates(new SimpleDateFormat("yyyy-MM").parse(node
|
||||
.getString("dates")));
|
||||
motorcarMonthly.setInnum(node.getString("innum"));
|
||||
motorcarMonthly.setOutnum(node.getString("outnum"));
|
||||
motorcarMonthly.setThroughput(node.getString("throughput"));
|
||||
motorcarMonthly.setSmonth(node.getString("dates"));
|
||||
motorcarMonthly.setReporter(node.getString("reporter"));
|
||||
if (flag.equals("1")) {
|
||||
Date date = new Date();
|
||||
motorcarMonthly.setWriteDate(date);
|
||||
motorcarMonthly.setStatus(Status.noAudit);
|
||||
systemService.saveOrUpdate(motorcarMonthly);
|
||||
repsonse = "success";
|
||||
} else if (flag.equals("0")) {
|
||||
motorcarMonthly.setStatus(Status.noSumbit);
|
||||
systemService.saveOrUpdate(motorcarMonthly);
|
||||
repsonse = "success";
|
||||
}
|
||||
}
|
||||
return repsonse;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取所有的月报数据
|
||||
*
|
||||
* @throws ParseException
|
||||
*/
|
||||
|
||||
@RequestMapping(params = "allmonthdata", method = RequestMethod.GET)
|
||||
@ResponseBody
|
||||
public String getAllMonthData(HttpServletRequest request, String userId)
|
||||
throws ParseException {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
|
||||
String response = null;
|
||||
List<OtherTravelInfo> otherTravelInfolist = systemService.findHql(
|
||||
"from OtherTravelInfo ot where ot.id=?", userId);
|
||||
OtherTravelInfo otherTravelInfo = otherTravelInfolist.get(0);
|
||||
List<MotorcarMonthly> monthList = this.systemService
|
||||
.findHql(
|
||||
"from MotorcarMonthly mc where mc.status<>1 and mc.otherTravelInfo=? ",
|
||||
otherTravelInfo);
|
||||
List<MotorcarMonthlyReportEntity> appMonthList = new ArrayList<>();
|
||||
MotorcarMonthly motorcarMonth[] = new MotorcarMonthly[monthList.size()];
|
||||
MotorcarMonthlyReportEntity motorcarMonthlyReportEntity[] = new MotorcarMonthlyReportEntity[monthList
|
||||
.size()];
|
||||
for (int i = 0; i < monthList.size(); i++) {
|
||||
motorcarMonth[i] = monthList.get(i);
|
||||
motorcarMonthlyReportEntity[i] = new MotorcarMonthlyReportEntity();
|
||||
motorcarMonthlyReportEntity[i].setDates(String
|
||||
.valueOf(motorcarMonth[i].getSmonth()));
|
||||
motorcarMonthlyReportEntity[i].setUserId(userId);
|
||||
motorcarMonthlyReportEntity[i].setInnum(String
|
||||
.valueOf(motorcarMonth[i].getInnum()));
|
||||
motorcarMonthlyReportEntity[i].setOutnum(String
|
||||
.valueOf(motorcarMonth[i].getOutnum()));
|
||||
motorcarMonthlyReportEntity[i].setThroughput(String
|
||||
.valueOf(motorcarMonth[i].getThroughput()));
|
||||
motorcarMonthlyReportEntity[i].setReporter(String
|
||||
.valueOf(motorcarMonth[i].getReporter()));
|
||||
String status = getstatus(String.valueOf(motorcarMonth[i]
|
||||
.getStatus()));
|
||||
motorcarMonthlyReportEntity[i].setStatus(status);
|
||||
|
||||
motorcarMonthlyReportEntity[i].setWriteDate(TimeUtils
|
||||
.getMonth(motorcarMonth[i].getWriteDate()));
|
||||
|
||||
appMonthList.add(motorcarMonthlyReportEntity[i]);
|
||||
}
|
||||
response = JSON.toJSONString(appMonthList);
|
||||
return response;
|
||||
|
||||
}
|
||||
|
||||
public static String getstatus(String status) {
|
||||
if (status.equals(Status.noSumbit)) {
|
||||
status = "未填报";
|
||||
} else if (status.equals(Status.noAudit)) {
|
||||
status = "未审核";
|
||||
} else if (status.equals(Status.notAudit)) {
|
||||
status = "管理员已审核(审核不通过)";
|
||||
} else if (status.equals(Status.passAudit)) {
|
||||
status = "管理员已审核(审核通过)";
|
||||
} else if (status.equals(Status.notAuditByP)) {
|
||||
status = "省已审核 审核结果:不通过";
|
||||
} else if (status.equals(Status.passAuditByP)) {
|
||||
status = "省已审核 审核结果:通过";
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,278 @@
|
||||
package com.zzc.app.otherTravel.entity;
|
||||
|
||||
/**
|
||||
* 服务端获取实体类
|
||||
*
|
||||
* @date: 2016年12月14日
|
||||
* @Author: 龙亚辉
|
||||
* @Email: 502230926@qq.com
|
||||
* @FileName: AirportMonthly.java
|
||||
* @Version: 1.0
|
||||
* @About: 机场月报
|
||||
*
|
||||
*/
|
||||
@SuppressWarnings("serial")
|
||||
public class AirportMonthlyReportEntity implements java.io.Serializable {
|
||||
// 对应涉旅的id
|
||||
private String userId;
|
||||
// 月报时间,格式2016-12
|
||||
private String dates;
|
||||
// 本月计划完成的运输起降架次
|
||||
private String plansortie;
|
||||
// 本月实际完成的运输起降架次
|
||||
private String actualsortie;
|
||||
// 全年计划完成的运输起降架次
|
||||
private String plansortieyear;
|
||||
// 本月计划出发运量-旅客(万人)
|
||||
private String planouttraveller;
|
||||
// 本月实际完成的出发货运-旅客(万人)
|
||||
private String actualouttraveller;
|
||||
// 全年计划完成的出发货运
|
||||
private String planouttravelleryear;
|
||||
// 本月计划完成的出发运量-货邮行
|
||||
private String planoutwill;
|
||||
// 本月实际完成的出发运量-货邮行
|
||||
private String actualoutwill;
|
||||
// 全年计划完成的出发货运-货邮行(吨)
|
||||
private String planoutwillyear;
|
||||
// 本月计划完成的到达运量-旅客(万人)
|
||||
private String planIntegerraveller;
|
||||
// 本月实际完成的到达运量-旅客(万人)
|
||||
private String actualIntegerraveller;
|
||||
// 全年计划完成的到达运量-旅客(万人)
|
||||
private String planIntegerravelleryear;
|
||||
// 本月计划完成的到达运量-货邮行(吨)
|
||||
private String planinwill;
|
||||
// 本月实际完成的到达运量-货邮行(吨)
|
||||
private String actualinwill;
|
||||
// 全年计划完成的到达运量-货邮行(吨)
|
||||
private String planinwillyear;
|
||||
// 本月计划完成的吞吐量-旅客(万人)
|
||||
private String planthroughputtraveller;
|
||||
// 本月实际完成的吞吐量-旅客(万人)
|
||||
private String actualthroughputtraveller;
|
||||
// 全年计划完成的吞吐量-旅客(万人)
|
||||
private String planthroughputtravelleryear;
|
||||
// 本月计划完成的吞吐量-货邮行(吨)
|
||||
private String planthroughputwill;
|
||||
// 本月实际完成的吞吐量-货邮行(吨)
|
||||
private String actualthroughputwill;
|
||||
// 全年计划完成的吞吐量-货邮行(吨)
|
||||
private String planthroughputwillyear;
|
||||
// 填报人
|
||||
private String reporter;
|
||||
// 填报时间
|
||||
private String reportdate;
|
||||
// 审核状态,1-未填报,2-未审核,3-管理员已审核(审核不通过),4-管理员已审核(审核通过)
|
||||
private String status;
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getDates() {
|
||||
return dates;
|
||||
}
|
||||
|
||||
public void setDates(String dates) {
|
||||
this.dates = dates;
|
||||
}
|
||||
|
||||
public String getPlansortie() {
|
||||
return plansortie;
|
||||
}
|
||||
|
||||
public void setPlansortie(String plansortie) {
|
||||
this.plansortie = plansortie;
|
||||
}
|
||||
|
||||
public String getActualsortie() {
|
||||
return actualsortie;
|
||||
}
|
||||
|
||||
public void setActualsortie(String actualsortie) {
|
||||
this.actualsortie = actualsortie;
|
||||
}
|
||||
|
||||
public String getPlansortieyear() {
|
||||
return plansortieyear;
|
||||
}
|
||||
|
||||
public void setPlansortieyear(String plansortieyear) {
|
||||
this.plansortieyear = plansortieyear;
|
||||
}
|
||||
|
||||
public String getPlanouttraveller() {
|
||||
return planouttraveller;
|
||||
}
|
||||
|
||||
public void setPlanouttraveller(String planouttraveller) {
|
||||
this.planouttraveller = planouttraveller;
|
||||
}
|
||||
|
||||
public String getActualouttraveller() {
|
||||
return actualouttraveller;
|
||||
}
|
||||
|
||||
public void setActualouttraveller(String actualouttraveller) {
|
||||
this.actualouttraveller = actualouttraveller;
|
||||
}
|
||||
|
||||
public String getPlanouttravelleryear() {
|
||||
return planouttravelleryear;
|
||||
}
|
||||
|
||||
public void setPlanouttravelleryear(String planouttravelleryear) {
|
||||
this.planouttravelleryear = planouttravelleryear;
|
||||
}
|
||||
|
||||
public String getPlanoutwill() {
|
||||
return planoutwill;
|
||||
}
|
||||
|
||||
public void setPlanoutwill(String planoutwill) {
|
||||
this.planoutwill = planoutwill;
|
||||
}
|
||||
|
||||
public String getActualoutwill() {
|
||||
return actualoutwill;
|
||||
}
|
||||
|
||||
public void setActualoutwill(String actualoutwill) {
|
||||
this.actualoutwill = actualoutwill;
|
||||
}
|
||||
|
||||
public String getPlanoutwillyear() {
|
||||
return planoutwillyear;
|
||||
}
|
||||
|
||||
public void setPlanoutwillyear(String planoutwillyear) {
|
||||
this.planoutwillyear = planoutwillyear;
|
||||
}
|
||||
|
||||
public String getPlanIntegerraveller() {
|
||||
return planIntegerraveller;
|
||||
}
|
||||
|
||||
public void setPlanIntegerraveller(String planIntegerraveller) {
|
||||
this.planIntegerraveller = planIntegerraveller;
|
||||
}
|
||||
|
||||
public String getActualIntegerraveller() {
|
||||
return actualIntegerraveller;
|
||||
}
|
||||
|
||||
public void setActualIntegerraveller(String actualIntegerraveller) {
|
||||
this.actualIntegerraveller = actualIntegerraveller;
|
||||
}
|
||||
|
||||
public String getPlanIntegerravelleryear() {
|
||||
return planIntegerravelleryear;
|
||||
}
|
||||
|
||||
public void setPlanIntegerravelleryear(String planIntegerravelleryear) {
|
||||
this.planIntegerravelleryear = planIntegerravelleryear;
|
||||
}
|
||||
|
||||
public String getPlaninwill() {
|
||||
return planinwill;
|
||||
}
|
||||
|
||||
public void setPlaninwill(String planinwill) {
|
||||
this.planinwill = planinwill;
|
||||
}
|
||||
|
||||
public String getActualinwill() {
|
||||
return actualinwill;
|
||||
}
|
||||
|
||||
public void setActualinwill(String actualinwill) {
|
||||
this.actualinwill = actualinwill;
|
||||
}
|
||||
|
||||
public String getPlaninwillyear() {
|
||||
return planinwillyear;
|
||||
}
|
||||
|
||||
public void setPlaninwillyear(String planinwillyear) {
|
||||
this.planinwillyear = planinwillyear;
|
||||
}
|
||||
|
||||
public String getPlanthroughputtraveller() {
|
||||
return planthroughputtraveller;
|
||||
}
|
||||
|
||||
public void setPlanthroughputtraveller(String planthroughputtraveller) {
|
||||
this.planthroughputtraveller = planthroughputtraveller;
|
||||
}
|
||||
|
||||
public String getActualthroughputtraveller() {
|
||||
return actualthroughputtraveller;
|
||||
}
|
||||
|
||||
public void setActualthroughputtraveller(String actualthroughputtraveller) {
|
||||
this.actualthroughputtraveller = actualthroughputtraveller;
|
||||
}
|
||||
|
||||
public String getPlanthroughputtravelleryear() {
|
||||
return planthroughputtravelleryear;
|
||||
}
|
||||
|
||||
public void setPlanthroughputtravelleryear(
|
||||
String planthroughputtravelleryear) {
|
||||
this.planthroughputtravelleryear = planthroughputtravelleryear;
|
||||
}
|
||||
|
||||
public String getPlanthroughputwill() {
|
||||
return planthroughputwill;
|
||||
}
|
||||
|
||||
public void setPlanthroughputwill(String planthroughputwill) {
|
||||
this.planthroughputwill = planthroughputwill;
|
||||
}
|
||||
|
||||
public String getActualthroughputwill() {
|
||||
return actualthroughputwill;
|
||||
}
|
||||
|
||||
public void setActualthroughputwill(String actualthroughputwill) {
|
||||
this.actualthroughputwill = actualthroughputwill;
|
||||
}
|
||||
|
||||
public String getPlanthroughputwillyear() {
|
||||
return planthroughputwillyear;
|
||||
}
|
||||
|
||||
public void setPlanthroughputwillyear(String planthroughputwillyear) {
|
||||
this.planthroughputwillyear = planthroughputwillyear;
|
||||
}
|
||||
|
||||
public String getReporter() {
|
||||
return reporter;
|
||||
}
|
||||
|
||||
public void setReporter(String reporter) {
|
||||
this.reporter = reporter;
|
||||
}
|
||||
|
||||
public String getReportdate() {
|
||||
return reportdate;
|
||||
}
|
||||
|
||||
public void setReportdate(String reportdate) {
|
||||
this.reportdate = reportdate;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package com.zzc.app.otherTravel.entity;
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @date: 2016年12月14日
|
||||
* @Author: 龙亚辉
|
||||
* @Email: 502230926@qq.com
|
||||
* @FileName: BoatMonthly.java
|
||||
* @Version: 1.0
|
||||
* @About: 游艇月报
|
||||
*/
|
||||
|
||||
public class BoatMonthlyReportEntity implements java.io.Serializable {
|
||||
// 对应企业的id
|
||||
private String userId;
|
||||
private String dates;
|
||||
private String recepNum;// 接待人数
|
||||
private String income;// 营业收入
|
||||
private String reporter;// 填报人
|
||||
private String writeDate;// 填表日期
|
||||
private String status;
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getDates() {
|
||||
return dates;
|
||||
}
|
||||
|
||||
public void setDates(String dates) {
|
||||
this.dates = dates;
|
||||
}
|
||||
|
||||
public String getRecepNum() {
|
||||
return recepNum;
|
||||
}
|
||||
|
||||
public void setRecepNum(String recepNum) {
|
||||
this.recepNum = recepNum;
|
||||
}
|
||||
|
||||
public String getIncome() {
|
||||
return income;
|
||||
}
|
||||
|
||||
public void setIncome(String income) {
|
||||
this.income = income;
|
||||
}
|
||||
|
||||
public String getReporter() {
|
||||
return reporter;
|
||||
}
|
||||
|
||||
public void setReporter(String reporter) {
|
||||
this.reporter = reporter;
|
||||
}
|
||||
|
||||
public String getWriteDate() {
|
||||
return writeDate;
|
||||
}
|
||||
|
||||
public void setWriteDate(String writeDate) {
|
||||
this.writeDate = writeDate;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
package com.zzc.app.otherTravel.entity;
|
||||
|
||||
/**
|
||||
* 空中飞行-月报实体类
|
||||
*/
|
||||
public class FlightMonthlyReportEntity implements java.io.Serializable {
|
||||
private String userId;
|
||||
// 月报时间,格式:2016-12
|
||||
private String dates;
|
||||
// 接待人次
|
||||
private String receptionnum;
|
||||
// 营业收入
|
||||
private String businessincome;
|
||||
// 飞行架次
|
||||
private String flighttimes;
|
||||
|
||||
// 审核状态,1-未填报,2-未审核,3-管理员已审核(审核通过),4-管理员已审核(审核不通过)
|
||||
private String status;
|
||||
private String writeDate;// 填表日期
|
||||
private String reporter;// 填报人
|
||||
|
||||
public String getDates() {
|
||||
return dates;
|
||||
}
|
||||
|
||||
public void setDates(String dates) {
|
||||
this.dates = dates;
|
||||
}
|
||||
|
||||
public String getReceptionnum() {
|
||||
return receptionnum;
|
||||
}
|
||||
|
||||
public void setReceptionnum(String receptionnum) {
|
||||
this.receptionnum = receptionnum;
|
||||
}
|
||||
|
||||
public String getBusinessincome() {
|
||||
return businessincome;
|
||||
}
|
||||
|
||||
public void setBusinessincome(String businessincome) {
|
||||
this.businessincome = businessincome;
|
||||
}
|
||||
|
||||
public String getFlighttimes() {
|
||||
return flighttimes;
|
||||
}
|
||||
|
||||
public void setFlighttimes(String flighttimes) {
|
||||
this.flighttimes = flighttimes;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getWriteDate() {
|
||||
return writeDate;
|
||||
}
|
||||
|
||||
public void setWriteDate(String writeDate) {
|
||||
this.writeDate = writeDate;
|
||||
}
|
||||
|
||||
public String getReporter() {
|
||||
return reporter;
|
||||
}
|
||||
|
||||
public void setReporter(String reporter) {
|
||||
this.reporter = reporter;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package com.zzc.app.otherTravel.entity;
|
||||
|
||||
public class GolfMonthlyReportEntity implements java.io.Serializable {
|
||||
|
||||
// 对应企业的id
|
||||
private String userId;
|
||||
// 月报时间,格式:2016-12
|
||||
private String dates;
|
||||
// 接待人次(单位:人次)
|
||||
private String receptionnum;
|
||||
// 营业收入(万元)
|
||||
private String businessincome;
|
||||
// private String hisreport;
|
||||
private String status;
|
||||
private String writeDate;// 填表日期
|
||||
|
||||
private String reporter;// 填报人
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
}
|
||||
|
||||
public String getDates() {
|
||||
return dates;
|
||||
}
|
||||
|
||||
public void setDates(String dates) {
|
||||
this.dates = dates;
|
||||
}
|
||||
|
||||
public String getReceptionnum() {
|
||||
return receptionnum;
|
||||
}
|
||||
|
||||
public void setReceptionnum(String receptionnum) {
|
||||
this.receptionnum = receptionnum;
|
||||
}
|
||||
|
||||
public String getBusinessincome() {
|
||||
return businessincome;
|
||||
}
|
||||
|
||||
public void setBusinessincome(String businessincome) {
|
||||
this.businessincome = businessincome;
|
||||
}
|
||||
|
||||
/*
|
||||
* public String getHisreport() { return hisreport; }
|
||||
*
|
||||
* public void setHisreport(String hisreport) { this.hisreport = hisreport;
|
||||
* }
|
||||
*/
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public void setStatus(String status) {
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public String getWriteDate() {
|
||||
return writeDate;
|
||||
}
|
||||
|
||||
public void setWriteDate(String writeDate) {
|
||||
this.writeDate = writeDate;
|
||||
}
|
||||
|
||||
public String getReporter() {
|
||||
return reporter;
|
||||
}
|
||||
|
||||
public void setReporter(String reporter) {
|
||||
this.reporter = reporter;
|
||||
}
|
||||
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user