Compare commits

...

563 Commits

Author SHA1 Message Date
thesai f14e377565 [新增]以终端反向信号机命名的信号机同样也用此信号机作为办理进路的按钮
CI / Docker-Build (push) Successful in 2m13s Details
2024-09-29 09:31:21 +08:00
thesai b302bb360b [新增]开启自动进路的信号机不能开放引导信号 2024-09-26 15:20:55 +08:00
thesai 1e2ed4d305 [新增]获取用户信息的接口中增加更新时间
CI / Docker-Build (push) Successful in 2m12s Details
2024-09-25 13:27:39 +08:00
thesai 436a07bcf4 [新增]获取所有用户信息的接口
CI / Docker-Build (push) Successful in 2m9s Details
2024-09-25 10:51:31 +08:00
thesai 235f4dce5b [新增]按id数组查询用户信息的接口
CI / Docker-Build (push) Successful in 2m14s Details
2024-09-24 16:43:07 +08:00
thesai ac87b0dbe9 [bug]实训中,有多个评分规则时,仅有一个评分规则被使用
CI / Docker-Build (push) Successful in 2m12s Details
2024-09-18 10:37:33 +08:00
thesai 3536ff75ad [修改]后备模式下,办理引导进路不再检查区段占用
CI / Docker-Build (push) Successful in 2m11s Details
2024-09-11 19:07:55 +08:00
thesai f57952b755 [修改]实训结束后的评分删除多余的memberId字段;查询实训按id逆序排列
CI / Docker-Build (push) Successful in 2m13s Details
2024-09-11 14:02:16 +08:00
thesai 9c9e7c60e3 [修改]场景实训结束后的评分展示中增加非用户角色的步骤(并增加每个步骤对应的角色id,非用户角色步骤没有分数)
CI / Docker-Build (push) Successful in 6m56s Details
2024-09-10 17:55:50 +08:00
thesai 98abf0691a Merge remote-tracking branch 'origin/develop' into develop 2024-09-10 17:01:45 +08:00
thesai 16e8dc191f [bug]对道岔区段的区故解仅解锁指定的区段,而非整个道岔计轴区段 2024-09-10 17:01:24 +08:00
tiger_zhou 4f151fae4a 修改 仿真销毁的时候发送cgy时间,有个可能是空的
CI / Docker-Build (push) Successful in 2m33s Details
2024-08-19 09:42:14 +08:00
tiger_zhou e93171e958 调整列车区段没有值得问题
CI / Docker-Build (push) Successful in 5m14s Details
2024-08-16 18:59:18 +08:00
thesai 4cd80bbec5 [bug]成都工业实体信号机黄灯、绿灯控制逻辑不对 2024-07-29 13:43:06 +08:00
thesai 8125e32d7e [bug]成都工业实体信号机黄灯、绿灯控制逻辑不对 2024-07-18 16:45:00 +08:00
thesai e23864fa72 [修改]探索如何设置maven镜像源
CI / Docker-Build (push) Successful in 5m3s Details
2024-06-11 20:40:34 +08:00
thesai 212773e679 [修改]gitea自动构建/发布脚本文件
CI / Docker-Build (push) Failing after 19m33s Details
2024-06-11 20:15:21 +08:00
thesai 495681db5d [修改]语音识别校验接口要求匹配率提高到70%
CI / Docker-Build (push) Failing after 1m49s Details
2024-06-07 18:10:20 +08:00
thesai dbe197eba6 [bug]成都工业区段联动服务没写 2024-05-24 11:40:13 +08:00
thesai cee9eda430 [修改]校验语音识别接口增加立体声转单声道逻辑
CI / Docker-Build (push) Successful in 2m36s Details
2024-05-17 17:38:22 +08:00
thesai 0d10203613 [修改]发布配置文件
CI / Docker-Build (push) Successful in 2m29s Details
公网服务发布 / Docker-Build-Push (push) Successful in 10s Details
2024-05-16 16:59:41 +08:00
thesai 99a772a050 [修改]语音识别并与正确文本进行校验接口的参数接收方式
CI / Docker-Build (push) Successful in 2m31s Details
2024-05-14 18:32:59 +08:00
thesai ba1e057bce [新增]语音识别并与正确文本进行校验接口
CI / Docker-Build (push) Successful in 8m28s Details
2024-05-14 15:14:16 +08:00
thesai 6187e6d667 [bug]成工院虚仿平台对接的统计数据同步服务bug 2024-05-11 09:09:33 +08:00
thesai bef6dda6b2 [新增]成工院虚仿平台对接的登录接口、统计数据并同步服务 2024-05-07 16:47:32 +08:00
thesai 5d15ba3240 [修改]成都工业职业技术学院项目设备联动逻辑 2024-04-17 10:42:05 +08:00
thesai aae729b637 【修改】试卷创建者信息查询接口GET请求参数绑定出错,改为POST 2024-04-11 13:18:17 +08:00
thesai 2416d21a4f 【新增】试卷创建者信息查询接口;查询试卷增加按创建人筛选 2024-04-10 14:53:34 +08:00
soul-walker 346a265164 添加readme文件说明分支及发布方式
CI / Docker-Build (push) Successful in 2m29s Details
公网服务发布 / Docker-Build-Push (push) Successful in 15s Details
2024-03-25 18:57:48 +08:00
soul-walker 9921aea15a 修改定时任务cron 2024-03-25 18:39:10 +08:00
soul-walker 3e19150a48 删除测试步骤
公网服务发布 / Docker-Build-Push (push) Successful in 28s Details
2024-03-25 18:28:52 +08:00
soul-walker 202037ec55 修改定时执行工作流
CI / Docker-Build (push) Successful in 2m30s Details
公网服务发布 / Docker-Build-Push (push) Failing after 14s Details
添加清理docker tag为none镜像步骤
2024-03-25 18:19:31 +08:00
soul-walker 5045f6152a 修改触发间隔
CI / Docker-Build (push) Successful in 2m28s Details
公网服务发布 / Docker-Build-Push (push) Successful in 3s Details
2024-03-25 17:14:43 +08:00
soul-walker 2a47dc5979 测试定时执行CI
修改工作流名称
2024-03-25 17:06:30 +08:00
soul-walker 6597194b9c 完善在git发布新版时的构建流程 2024-03-25 16:27:26 +08:00
soul-walker 319592dd19 继续测试event的release事件对象 2024-03-25 15:08:34 +08:00
soul-walker 585c32ac0d 测试event事件对象
测试下拉代码分支版本
2024-03-25 14:51:32 +08:00
soul-walker 3301634aa0 修改触发类型
CI / Docker-Build (push) Has been cancelled Details
2024-03-25 14:32:44 +08:00
soul-walker 32d9a9ab21 添加新工作流 2024-03-22 16:36:16 +08:00
soul-walker a440b77c7f 修改docker 构建bug
CI / Docker-Build (push) Successful in 3m29s Details
2024-03-22 15:37:25 +08:00
soul-walker 82e41df1c7 添加设置maven环境操作
CI / Docker-Build (push) Failing after 18m32s Details
2024-03-22 09:33:00 +08:00
soul-walker 0b7ce9d746 修改setup java版本
CI / Docker-Build (push) Failing after 1m14s Details
2024-03-21 15:33:20 +08:00
soul-walker b10ea3b6ba 添加local_test持续集成部署工作流
CI / Docker-Build (push) Failing after 33s Details
2024-03-21 15:29:19 +08:00
soul-walker f2b38a9eb2 修改submodule 2024-03-13 19:18:17 +08:00
tiger_zhou bf87b46662 Merge branch 'test' 2024-03-12 10:36:14 +08:00
tiger_zhou 5f2c1133ca 大赛管理功能 2024-03-12 09:37:21 +08:00
tiger_zhou 352c44a280 大赛管理功能 2024-03-11 18:12:01 +08:00
tiger_zhou d20fe5fd27 文本替换添加对应的日志 2024-03-11 17:57:12 +08:00
tiger_zhou c085f5f778 大赛管理功能 2024-03-11 15:25:43 +08:00
tiger_zhou 5579c4f461 大赛管理功能 2024-03-11 15:05:06 +08:00
tiger_zhou 2f9ace88bd 大赛管理功能 2024-03-11 15:01:24 +08:00
tiger_zhou 287e004ee5 大赛管理功能 2024-03-11 13:35:18 +08:00
tiger_zhou 6843a987d5 大赛管理功能 2024-03-11 13:10:40 +08:00
tiger_zhou cc7218902e 大赛管理功能 2024-03-11 13:10:04 +08:00
tiger_zhou 7404c0bfb8 大赛管理功能 2024-03-11 10:45:05 +08:00
tiger_zhou ae06533192 大赛管理功能 2024-03-11 10:02:19 +08:00
tiger_zhou c18a073dee 大赛管理功能 2024-03-11 09:46:46 +08:00
tiger_zhou a5b71e159a 大赛管理功能 2024-03-11 09:26:12 +08:00
thesai 727ddd48ac Merge branch 'test' 2024-03-08 11:32:51 +08:00
tiger_zhou f95ed6a898 大赛管理功能 2024-03-08 10:51:08 +08:00
tiger_zhou 985c1de837 大赛管理功能 2024-03-08 10:28:31 +08:00
tiger_zhou c0ed50ccdc 大赛管理功能 2024-03-07 16:47:41 +08:00
tiger_zhou 164c26a01e 大赛管理功能 2024-03-07 14:56:38 +08:00
tiger_zhou 13451cbec0 大赛管理功能 2024-03-07 14:35:55 +08:00
tiger_zhou 2a0e126a7c 大赛管理功能 2024-03-07 14:24:54 +08:00
tiger_zhou 8b23269aba 大赛管理功能 2024-03-07 13:23:44 +08:00
thesai 2492184d0e Merge branch 'test' 2024-03-05 13:53:51 +08:00
tiger_zhou 9cda9872cd 大赛管理功能 2024-03-05 10:44:42 +08:00
thesai 200f7b5db7 赛题训练结果中添加场景ID字段 2024-03-05 10:07:27 +08:00
thesai deb7fa11fc Merge branch 'test' 2024-03-04 17:26:29 +08:00
thesai cbb52ddbd7 赛题模块训练接口调试修改 2024-03-04 16:29:20 +08:00
tiger_zhou 7fb4199e1b Merge remote-tracking branch 'origin/test' into test 2024-03-04 14:39:22 +08:00
tiger_zhou 08d7996f32 大赛管理功能 2024-03-04 14:38:38 +08:00
thesai 6fe2679fd8 增加赛题模块训练接口(未完) 2024-03-01 18:27:40 +08:00
tiger_zhou 9df4de84b6 大赛管理功能 2024-03-01 16:58:07 +08:00
tiger_zhou 823888ac35 大赛管理功能 2024-03-01 16:47:15 +08:00
tiger_zhou 1e927b29af 大赛管理功能 2024-03-01 13:17:40 +08:00
tiger_zhou 97b6d27952 大赛管理功能 2024-03-01 08:32:18 +08:00
thesai 58bc68876a Merge branch 'test'
# Conflicts:
#	rtss-message
2024-02-29 23:05:43 +08:00
tiger_zhou 4a1316e1bd 大赛管理功能方法注释 2024-02-29 18:00:54 +08:00
tiger_zhou 902a2e78b1 大赛管理功能 2024-02-29 16:13:42 +08:00
tiger_zhou 7b36192a9a 大赛管理功能 2024-02-29 10:45:22 +08:00
thesai 761c7e02eb 增加用功能参数创建仿真的接口; 2024-02-28 18:30:47 +08:00
tiger_zhou 8446891ba5 大赛管理功能 2024-02-28 17:42:48 +08:00
tiger_zhou 7e227fb96b 大赛管理功能 2024-02-28 13:47:48 +08:00
tiger_zhou 6c1bb1d77f 大赛管理功能 2024-02-28 10:05:04 +08:00
tiger_zhou 636f049bfe 大赛管理功能 2024-02-27 15:51:27 +08:00
tiger_zhou 6e19d7acb1 大赛管理功能 2024-02-27 15:51:13 +08:00
tiger_zhou e647d54762 大赛管理功能 2024-02-27 15:35:49 +08:00
tiger_zhou 161e8ec469 大赛管理功能 2024-02-27 15:08:00 +08:00
tiger_zhou eecef5ba96 大赛管理功能 2024-02-27 13:49:46 +08:00
tiger_zhou da470b1832 大赛管理功能 2024-02-27 13:47:23 +08:00
tiger_zhou 23d46aac0c 大赛管理功能 2024-02-27 13:39:04 +08:00
tiger_zhou 37f6fd51eb 大赛管理功能删除之前的模块相关功能 2024-02-27 09:44:12 +08:00
tiger_zhou 9bf2fede2c 大赛管理功能 2024-02-27 09:26:24 +08:00
tiger_zhou 025888cbd2 大赛管理功能 2024-02-27 09:20:32 +08:00
tiger_zhou 9139c93a75 大赛管理功能 2024-02-26 17:27:07 +08:00
tiger_zhou 8200bd7c76 大赛管理功能 2024-02-26 14:03:39 +08:00
tiger_zhou 2647a26869 大赛管理功能 2024-02-26 13:35:39 +08:00
tiger_zhou 68fdecdf31 大赛管理功能 2024-02-23 17:40:04 +08:00
tiger_zhou 2be04ceca1 大赛管理功能 2024-02-23 16:50:22 +08:00
tiger_zhou 1cf7397f55 大赛管理功能 2024-02-23 11:50:44 +08:00
tiger_zhou 25396dc11c 大赛管理功能 2024-02-23 11:49:15 +08:00
tiger_zhou 49aff5b340 大赛管理功能 2024-02-23 11:27:32 +08:00
tiger_zhou cc58504b5b 大赛管理功能 2024-02-23 11:04:38 +08:00
tiger_zhou cade3772cd 大赛管理功能 2024-02-23 11:03:10 +08:00
tiger_zhou 6288c72829 大赛管理功能 2024-02-23 10:52:42 +08:00
tiger_zhou 1931e5f52f 大赛管理功能 2024-02-23 10:49:16 +08:00
tiger_zhou 07e23db1db 大赛管理功能 2024-02-23 10:39:11 +08:00
tiger_zhou 63c1c88312 大赛管理功能 2024-02-23 10:02:44 +08:00
tiger_zhou e515bcb56a 大赛管理功能 2024-02-23 09:27:19 +08:00
tiger_zhou b24c3ddaa7 大赛管理功能 2024-02-23 09:23:42 +08:00
tiger_zhou 2ce51aaac9 添加service 2024-02-18 15:12:43 +08:00
tiger_zhou 740dcefb4c 添加controller 2024-02-18 15:12:16 +08:00
tiger_zhou d278c01d3b 添加 protobuf 2024-02-18 15:09:03 +08:00
thesai 5d07d730eb proto文件编译工具类和编译后的文件 2024-02-05 15:45:18 +08:00
thesai 76dea2b00b 竞赛接口使用的proto文件 v0.1 2024-02-05 14:05:45 +08:00
thesai 6996aae12f 添加竞赛proto定义0.1版 2024-02-02 15:30:27 +08:00
tiger_zhou 92bfa114be 添加 protobuf 2024-01-31 11:13:17 +08:00
tiger_zhou 006367f3de 添加 message子模块 2024-01-31 10:49:46 +08:00
tiger_zhou 7b4c5f0948 添加 message子模块 2024-01-31 10:47:26 +08:00
tiger_zhou bb0cf5a83f 添加 message子模块 2024-01-31 10:45:26 +08:00
tiger_zhou 99a47d9d65 调整 2024-01-31 10:32:37 +08:00
joylink_zhangsai 5cbcd67041 修改进路接近锁闭的判定条件与信号机保持一致;回滚办理引导进路时,引导信号持续时间逻辑 2023-12-19 14:54:23 +08:00
weizhihong 5372e55b44 【车站直接转中控】 2023-12-05 18:13:17 +08:00
joylink_zhangsai 2316deb8d3 发给前端的列车状态增加停站状态 2023-12-04 17:51:24 +08:00
joylink_zhangsai b0d30ed58c 修改机器人驾驶逻辑:停车后不会自动开ATO,修改预选模式后即可自动开启ATO 2023-12-04 12:17:43 +08:00
joylink_zhangsai b8768e6052 修改机器人驾驶的停车制动操作 2023-12-04 11:01:00 +08:00
joylink_zhangsai d77e70c126 Merge remote-tracking branch 'origin/test' into test 2023-12-04 10:14:19 +08:00
joylink_zhangsai 7f30126bd8 修改设置备用车预选模式无效bug 2023-12-04 10:13:57 +08:00
weizhihong 2b3b1134c5 【发布保存为草稿】【增加TMS、PIS设备类型】 2023-12-01 11:24:08 +08:00
joylink_zhangsai 5e5a17d79a 修改【人工驾驶默认停车】配置的生效逻辑 2023-11-30 17:01:41 +08:00
weizhihong 659b537f75 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-11-30 14:08:38 +08:00
weizhihong 441ec71627 【增加移动授权非空判断】 2023-11-30 14:08:20 +08:00
walker 4739bb6a68 添加进路办理检查道岔人工办理优先处理逻辑 2023-11-30 14:07:44 +08:00
walker 44e9bd5ec2 添加进路办理检查道岔征用相反位置人工办理优先处理逻辑 2023-11-29 16:52:18 +08:00
weizhihong bdfa4d2992 【仿真背景加载列车逻辑修改】【站台跳停时,列车不开门】【calculateStationRatio方法返回值空指针处理】 2023-11-28 17:53:16 +08:00
weizhihong d39f9dbdbb 【重复加载实训人员时出错】 2023-11-28 14:16:39 +08:00
weizhihong 700d95e4a7 【增加点击初始化清除人员操作,编制时找不到列车问题】 2023-11-27 17:56:27 +08:00
weizhihong 28c74a75cd Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-11-27 16:47:40 +08:00
weizhihong a73c568b7f 【实训加载时人员初始化】 2023-11-27 16:47:31 +08:00
joylink_zhangsai e67b7b8ad1 以ATO速度曲线的距离筛选MA(之前以EOA距离筛选的方式导致列车运行过远) 2023-11-27 16:26:07 +08:00
joylink_zhangsai 300804dccc 车地通信异常情况下无法同步列车信息 2023-11-27 10:06:43 +08:00
joylink_zhangsai 787ecb5642 修改列车供电状态的更新逻辑;列车重新通电之后重置ATP系统中的一些状态;TrainInfo中增加车地通信状态 2023-11-24 16:40:40 +08:00
joylink_zhangsai 29b94f0f1b 修改“驾驶”命令设置目的地时的bug 2023-11-24 10:52:23 +08:00
joylink_zhangsai 3e8ed7095e 实训时,用户的会话操作匹配失败后,机器人成员会发送“请重复”语音 2023-11-23 17:03:00 +08:00
joylink_zhangsai 6c6e254751 列车初始化时将机器人驾驶参数也初始化 2023-11-23 10:50:31 +08:00
joylink_zhangsai 6b14090431 场景实训中非用户的文字聊天操作会被替换为语音聊天,且车次号会被替换为专业发音 2023-11-23 09:52:02 +08:00
joylink_zhangsai 5eac7cc9be 进路人工办理优先于自动办理(人工办理进路会将与其冲突的、尚未办理完成的进路取消掉) 2023-11-22 17:15:51 +08:00
joylink_zhangsai 4becfd48cb 列车机器人驾驶需使用驾驶命令后才会自动解除EB 2023-11-22 16:16:21 +08:00
joylink_zhangsai aec1a01f96 修复国赛场景编制遇到的问题。修改延续保护中道岔的延续保护及侧防解锁逻辑;修改设计划车时的计划筛选逻辑 2023-11-21 14:51:26 +08:00
joylink_zhangsai 0faf852aa6 更严格的限制CM模式机器人驾驶 2023-11-20 13:32:13 +08:00
tiger_zhou 3d86ae0355 中途添加计划车导致报错问题 2023-11-16 15:45:18 +08:00
joylink_zhangsai 618c8dc33c 修改设置计划车时,下一车站计划的筛选逻辑 2023-11-16 15:16:05 +08:00
joylink_zhangsai 57209785ad 修改成工院实训室项目生成设备配置的逻辑 2023-11-15 18:07:52 +08:00
joylink_zhangsai 352ef75923 储存TrainInfo的头码车运行路径(hctPath)信息 2023-11-15 17:58:38 +08:00
joylink_zhangsai 25c31fcefb 修改机器人开启ATO的逻辑;修改[延续保护太早锁闭在错误位置导致无法办理]的bug 2023-11-15 13:21:36 +08:00
joylink_zhangsai f1da71f236 增加成都工业职业技术学院线下项目实体设备连接配置及服务 2023-11-15 09:26:04 +08:00
joylink_zhangsai 885e98dccf 修改TMS消息bug 2023-11-13 13:47:32 +08:00
joylink_zhangsai f98dee79a0 Merge remote-tracking branch 'origin/test' into test 2023-11-13 09:26:06 +08:00
joylink_zhangsai f281499099 增加列车TMS(司机视角左下角)消息 2023-11-13 09:17:56 +08:00
tiger_zhou bb26f1e944 修改列车折返错误 2023-11-07 16:45:24 +08:00
joylink_zhangsai 48803daf24 删除到道岔转动操作接口阻塞 2023-11-01 15:07:25 +08:00
joylink_zhangsai 3855c3ab64 Merge branch 'test' 2023-11-01 15:02:11 +08:00
joylink_zhangsai 3335dea0a6 删除仿真操作接口阻塞 2023-11-01 15:00:48 +08:00
joylink_zhangsai b4aa17e028 Merge branch 'test' 2023-10-31 17:52:11 +08:00
joylink_zhangsai 67175c5919 修改设置备用车时列车级别不正确的bug;修改机器人驾驶及ATS界面的修改预选模式操作逻辑;挤岔恢复操作增加等待 2023-10-31 17:38:18 +08:00
joylink_zhangsai 376590f5d1 修改联锁生成逻辑:解决同时设置“多延续保护生成多条进路”与“触发式延续保护”时,本该有且仅有一个延续保护的进路实际会没有延续保护的问题 2023-10-31 10:37:58 +08:00
joylink_zhangsai 361d446a19 增加进路“ars”属性的判断逻辑:延续保护有侧向道岔的不行;进路中的区段与进路方向相反的不行。 修改删除驾驶参数“无”后出现的bug 2023-10-30 18:07:39 +08:00
joylink_zhangsai abbfabab40 加载备用车时,如果选择了ITC相关预选模式,当前模式会是RM,后续运行收到移动授权后升级;驾驶操作的参数,”进路闭塞法行车“替代”无“,删除原”进路闭塞法行车“ 2023-10-30 17:34:40 +08:00
joylink_zhangsai 9b5c54f749 根据配置决定列车转人工模式后是否默认为停车 2023-10-30 14:26:38 +08:00
joylink_zhangsai 9b4480f376 挤岔故障恢复逻辑修改为恢复并转换到另一个位置 2023-10-30 11:03:40 +08:00
joylink_zhangsai 1be9cccc4a 实现“进路中道岔故障时,区段和道岔由远及近锁闭,并且可以开放引导信号”逻辑 2023-10-30 09:49:30 +08:00
joylink_zhangsai cd92403096 增加“单列车进路”属性生成及使用逻辑 2023-10-27 16:19:26 +08:00
joylink_zhangsai b01ac1dc0f [办理进路][道岔转动][道岔强扳]接口阻塞式等待结果 2023-10-27 15:56:52 +08:00
joylink_zhangsai 2f2ec98029 加载备用车时可以选择预选模式;“多延续保护生成多条进路”联锁生成配置下也支持触发式延续保护;线路设置增加两个配置(但不生效) 2023-10-27 10:09:46 +08:00
joylink_zhangsai 18cfe99905 列车越过进路始端信号机后,信号机即刻降级(关闭级);进路延时解锁的同时进路即设置为人工模式;延续保护中的道岔设为延续保护锁闭;进路增加办理成功状态 2023-10-26 15:35:24 +08:00
joylink_zhangsai e7c6d428ad 增加特殊情况下使用的换端操作;修改机器人驾驶列车bug 2023-10-25 14:15:10 +08:00
joylink_zhangsai 9259fd123b Merge branch 'test' 2023-09-27 18:09:23 +08:00
tiger_zhou cf24e2e7f9 调整 2023-09-27 18:04:35 +08:00
tiger_zhou 42d36d8812 Merge remote-tracking branch 'origin/test' into test 2023-09-27 17:55:14 +08:00
tiger_zhou f6021e9a2d 删除自己的实训数据,出现共享数据不能删除的错误 2023-09-27 17:53:59 +08:00
joylink_zhangsai e2cd83d298 实训场景编制时,将控制权转换相关消息暂存,后续再发送;增加[车站站长]和[站务员]角色 2023-09-27 15:47:05 +08:00
joylink_zhangsai d7b42ef478 修改数据构建bug 2023-08-29 16:53:26 +08:00
joylink_zhangsai 99ecac0318 修改ngy项目设备生成逻辑 2023-08-18 15:10:55 +08:00
joylink_zhangsai 8b85c0a63b 运行图编制,复制计划时,按照源计划的服务号位数决定新服务号位数 2023-08-18 09:51:32 +08:00
joylink_zhangsai b4bb689dc5 增加南工院沙盘服务 2023-08-14 13:11:05 +08:00
joylink_zhangsai 813d13d768 添加新设备类型 2023-07-06 11:13:42 +08:00
joylink_zhangsai c686a8d23e 泰国沙盘删除多次出清才算出清逻辑 2023-06-13 10:32:50 +08:00
joylink_zhangsai 3c6cb3a994 泰国沙盘增加进路解锁逻辑 2023-06-12 15:54:42 +08:00
weizhihong 88d9ae234c Merge branch 'test' 2023-06-07 18:01:10 +08:00
joylink_zhangsai 9001cb5df9 Merge remote-tracking branch 'origin/test' into test
# Conflicts:
#	src/main/java/club/joylink/rtss/simulation/cbtc/robot/SimulationRobotService.java
2023-06-07 17:56:08 +08:00
joylink_zhangsai 6a9b4c43c9 修改泰国沙盘逻辑,提高UDP真实设备逻辑运行速度 2023-06-07 17:54:58 +08:00
weizhihong 4937d22a0d 【回库匹配逻辑】 2023-06-07 16:21:15 +08:00
weizhihong bf7f8510be 【连挂车停位BUG】 2023-06-07 16:02:59 +08:00
weizhihong 389f393a7d 【道岔转动联动处理】 2023-06-07 14:41:47 +08:00
weizhihong 8764511650 【学生成绩统计BUG】 2023-06-07 10:16:20 +08:00
weizhihong c84538bc4f 【修改连挂后,故障车到达位置】 2023-06-07 08:55:21 +08:00
weizhihong 8cb9d9bb84 【回库BUG】 2023-06-06 17:01:37 +08:00
weizhihong 4de0b5e0e8 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-06-06 16:42:35 +08:00
weizhihong c13e5ab742 【连挂车设置驾驶目的地时,给故障车赋值】 2023-06-06 16:42:29 +08:00
tiger_zhou ba5ec61c5e 应急调度日志 2023-06-06 16:01:34 +08:00
tiger_zhou c9c8c75be3 应急调度日志 2023-06-06 13:49:29 +08:00
joylink_zhangsai b70d829c65 Merge remote-tracking branch 'origin/test' into test 2023-06-05 11:42:12 +08:00
joylink_zhangsai b41ea03502 泰国沙盘禁用列车自动上线逻辑 2023-06-05 11:41:59 +08:00
tiger_zhou a6f75d5cbf 考试回调参数 2023-06-05 10:48:25 +08:00
joylink_zhangsai 5cc2c02ccc 修改本地环境的数据连接配置 2023-06-04 18:45:39 +08:00
joylink_zhangsai 7d678f3d61 泰国沙盘停站延时改动 2023-06-04 18:28:16 +08:00
joylink_zhangsai 74b9ab80da 泰国沙盘调试改动 2023-06-04 17:23:46 +08:00
weizhihong f968066501 Merge branch 'test' 2023-06-01 18:27:55 +08:00
weizhihong f3ec423779 【实训导出BUG修复】 2023-06-01 18:26:29 +08:00
weizhihong 8f9316c3c9 Merge branch 'test' 2023-06-01 18:18:27 +08:00
weizhihong ec6e78dbcb 【进路解锁逻辑修改】 2023-06-01 15:38:37 +08:00
weizhihong dad1bfc982 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-06-01 14:37:30 +08:00
weizhihong c23d97ae86 【红光带引导,进路取消逻辑修改】 2023-06-01 14:37:24 +08:00
tiger_zhou daee0d2c67 Merge remote-tracking branch 'origin/test' 2023-06-01 09:11:59 +08:00
tiger_zhou a1be780b13 南宁设备逻辑 2023-06-01 09:00:34 +08:00
tiger_zhou 35b9f0cca2 Merge remote-tracking branch 'origin/test' 2023-05-31 16:07:29 +08:00
tiger_zhou 966c70cd2f Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-31 16:06:16 +08:00
tiger_zhou 3189b6b51a 南宁设备逻辑 2023-05-31 16:05:48 +08:00
weizhihong a1a9929f4d 【实训加载到某步出现提示BUG】
【角色替换扮演置NULL问题】
【信号机增加引导关键道岔属性】
2023-05-31 15:20:43 +08:00
weizhihong 4e5e83202c 【IBP按钮时间使用仿真时间处理】 2023-05-30 17:30:53 +08:00
tiger_zhou 38c30520f4 武汉8修改日志 2023-05-30 16:49:45 +08:00
weizhihong 72024821b0 【增加IBP计轴复位预处理逻辑】 2023-05-30 16:46:18 +08:00
tiger_zhou 6cfa675ead Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-30 16:39:33 +08:00
tiger_zhou 25fbd9a715 武汉8 2023-05-30 16:39:06 +08:00
weizhihong 0a8082ed97 【无群组信息是给默认数据】 2023-05-30 15:52:41 +08:00
weizhihong d9812813d7 【多人仿真调用接口时,修改实训状态】 2023-05-30 14:43:53 +08:00
tiger_zhou 33dbc54fd9 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-30 13:54:29 +08:00
weizhihong 0be6e02563 【处理实训结束操作时,暂停导致结束消息不发送问题】 2023-05-30 13:48:43 +08:00
weizhihong 488ec0a7a4 【增加实训开始结束状态消息】 2023-05-30 10:43:40 +08:00
weizhihong cda1272d08 【发布实训导出去除地图ID】【实训加载增加模式参数】 2023-05-29 17:52:53 +08:00
tiger_zhou 06d4e50192 记录 2023-05-29 16:46:06 +08:00
weizhihong 07f8bcbd16 【上电解锁状态提交】 2023-05-29 16:23:07 +08:00
weizhihong b505dcdbfe 【多人实训开始前发送实训ID消息】 2023-05-29 14:13:09 +08:00
weizhihong 2596ad3085 【上电解锁按钮】 2023-05-29 11:14:54 +08:00
tiger_zhou 6b30e5c066 Merge remote-tracking branch 'origin/test' 2023-05-29 09:39:49 +08:00
tiger_zhou ecdf3de890 部署过滤 2023-05-29 09:14:00 +08:00
weizhihong 68b4c0af01 【导入、导出实训接口】 2023-05-26 18:06:59 +08:00
tiger_zhou ee3f242162 部署过滤 2023-05-26 17:07:05 +08:00
tiger_zhou cf6e117549 Merge remote-tracking branch 'origin/test' 2023-05-26 16:39:21 +08:00
joylink_zhangsai 63fbc5d0c6 修改NCC报警bug 2023-05-26 16:35:31 +08:00
joylink_zhangsai 8acadcd71f Merge remote-tracking branch 'origin/test' into test 2023-05-26 16:01:28 +08:00
joylink_zhangsai 17d42a4d63 修改NCC报警bug 2023-05-26 15:46:17 +08:00
tiger_zhou 36a3609164 Merge branch 'test' 2023-05-26 15:33:47 +08:00
tiger_zhou 49f19cdc17 Merge branch 'test-zy' into test 2023-05-26 15:33:00 +08:00
tiger_zhou ca43e7e0ee 记录 2023-05-26 15:32:23 +08:00
joylink_zhangsai 3aed493654 Merge remote-tracking branch 'origin/test' into test 2023-05-26 15:27:10 +08:00
joylink_zhangsai ffe8927892 修改NCC报警bug 2023-05-26 15:26:52 +08:00
weizhihong 9eaf172a99 【去除群组名称校验】 2023-05-26 15:09:09 +08:00
joylink_zhangsai 19f63f8f38 恢复向第三方接口同步仿真使用记录功能 2023-05-26 15:00:42 +08:00
tiger_zhou 92adfad951 部署调整白名单列表 2023-05-26 11:15:07 +08:00
joylink_zhangsai 957dc9bd7f 修改,NCC报警原因显示故障设备name而非code;提交转移旧仿真记录的sql 2023-05-25 13:14:41 +08:00
joylink_zhangsai 07b699cf7b Merge branch 'test' 2023-05-24 19:38:46 +08:00
joylink_zhangsai cced32fca8 修改NCC报警逻辑bug 2023-05-24 19:33:07 +08:00
joylink_zhangsai 6a7931da7c 增加日志,用于调试 2023-05-24 19:22:46 +08:00
joylink_zhangsai 5ef51cbe56 NCC报警道岔失表故障改为汉字 2023-05-24 18:24:27 +08:00
joylink_zhangsai c6b74613dc 修改NCC报警监控bug 2023-05-24 17:53:18 +08:00
joylink_zhangsai 4f4377f3b8 删除多余的仿真销毁消息 2023-05-24 17:19:51 +08:00
joylink_zhangsai 37e13abe47 Merge remote-tracking branch 'origin/test' into test 2023-05-24 17:19:12 +08:00
joylink_zhangsai 8e4155d6d4 NCC报警增加原因和pis模板 2023-05-24 17:18:43 +08:00
joylink_zhangsai 6e198efe85 NCC报警增加原因和pis模板 2023-05-24 17:17:56 +08:00
joylink_zhangsai e7cab0591d 删除掉版本发布之初处理数据的接口和一些很久以前的sql 2023-05-24 16:27:49 +08:00
joylink_zhangsai cc9e63842d 删除掉版本发布之初处理数据的接口和一些很久以前的sql 2023-05-24 15:07:38 +08:00
joylink_zhangsai 00cd87f972 登录信息增加第三方登录;将异常的默认信息改为英文 2023-05-24 15:04:24 +08:00
weizhihong 7df0a7e5f1 【会话私发自己给自己发送BUG】 2023-05-24 14:13:48 +08:00
weizhihong 7c84157e67 【会话消息发送BUG】 2023-05-24 14:04:09 +08:00
weizhihong e016aab767 【用户给自己发送消息时,发错会话组问题】 2023-05-24 10:07:07 +08:00
weizhihong a780b385bd 【增加OCC信息调度角色】 2023-05-23 09:32:14 +08:00
joylink_zhangsai 8e63848520 重新实现仿真记录、删除旧的仿真记录Service;重写Section的toString方法 2023-05-22 17:21:35 +08:00
joylink_zhangsai e66bb869f3 Merge remote-tracking branch 'origin/test' into test 2023-05-22 17:17:32 +08:00
joylink_zhangsai 477bda4557 当移除仿真用户时,发送ws消息给前端 2023-05-22 17:17:01 +08:00
weizhihong d981f43c12 【更新角色时,增加群主字段】 2023-05-22 15:41:03 +08:00
weizhihong bf93d15082 【增加会话群组加入socket消息字段】 2023-05-22 15:14:57 +08:00
weizhihong 803d1a761f 【修改初始化仿真时,群组信息不重置BUG】 2023-05-22 14:58:42 +08:00
tiger_zhou b302f7d4d4 考试定义调整 2023-05-22 10:05:31 +08:00
tiger_zhou 4fa0c0c2b7 考试定义调整 2023-05-22 09:33:26 +08:00
weizhihong e9444302d9 【实训设备过滤规则修改】 2023-05-21 16:08:25 +08:00
tiger_zhou f260aab664 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-21 16:00:10 +08:00
tiger_zhou a49e910976 考试定义调整 2023-05-21 15:59:33 +08:00
weizhihong bc874187e6 【增加实训中进路始终信号机在同一联锁站的规则】 2023-05-21 15:54:05 +08:00
tiger_zhou 12f7d33816 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-21 15:39:28 +08:00
weizhihong 6331e723eb 【根据地图原有的线路功能信息生成新的线路功能信息(模板与当前数据名称匹配)】 2023-05-21 15:26:53 +08:00
joylink_zhangsai 4f599acffe Merge remote-tracking branch 'origin/test' into test 2023-05-21 13:56:08 +08:00
joylink_zhangsai f0243ba4e1 在仿真状态订阅路径中增加仿真倍速消息 2023-05-21 13:55:56 +08:00
tiger_zhou 827a9b75ec 考试定义调整 2023-05-21 13:27:26 +08:00
weizhihong 74193e6db7 【区故解背景设置】 2023-05-21 13:16:57 +08:00
tiger_zhou 71addf2b60 Merge branch 'master' of https://git.code.tencent.com/lian-cbtc/rtss-server 2023-05-20 18:24:58 +08:00
joylink_zhangsai 21c9cd242f Merge remote-tracking branch 'origin/test' 2023-05-20 18:20:38 +08:00
tiger_zhou 14fa1132fe Merge remote-tracking branch 'origin/test' 2023-05-20 18:20:22 +08:00
tiger_zhou 7f0cb1e41b 用户考试调整,支持"单操"绑定客户端的操作 2023-05-20 18:05:47 +08:00
tiger_zhou 5c19222cf4 用户考试调整,支持"单操"绑定客户端的操作 2023-05-20 16:59:55 +08:00
weizhihong 2bfdaeab63 【修改私聊消息时间控制问题】 2023-05-20 15:02:22 +08:00
weizhihong 145bc63540 【修改单操生成时背景设置逻辑】 2023-05-20 13:31:57 +08:00
tiger_zhou d048ae9c60 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-20 11:26:51 +08:00
tiger_zhou 5e6dbb4f3c 用户考试调整
1 加载试卷返回当前系统时间
2 注释交卷时长的验证
2023-05-20 11:26:30 +08:00
joylink_zhangsai 3f4cccbeed 修改NCC故障信息发送到的ws 2023-05-15 17:10:03 +08:00
tiger_zhou b62453ecc8 考试实训计算分调整 2023-05-15 16:42:22 +08:00
tiger_zhou 5d289fbc97 考试实训计算分调整 2023-05-15 14:27:42 +08:00
weizhihong 9e08c224ac Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-05-15 13:19:29 +08:00
weizhihong 1c5a9e9315 【默认客户端处理】 2023-05-15 13:19:23 +08:00
tiger_zhou 0574328ff0 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-15 13:04:26 +08:00
tiger_zhou 9e130d9f31 ncc图例铁车位置调整 2023-05-15 13:04:11 +08:00
tiger_zhou 430fe344cf ncc图例铁车位置调整 2023-05-15 13:02:59 +08:00
weizhihong c16b415c86 【客户端生成逻辑修改】 2023-05-15 10:32:51 +08:00
weizhihong efb68f9496 【跳转步骤时,背景加载逻辑BUG】 2023-05-13 17:03:58 +08:00
tiger_zhou 6c44d38ebd ncc图例铁车位置调整 2023-05-13 14:04:01 +08:00
weizhihong ed357b2e4a 【修改仿真最大速度】 2023-05-12 18:00:30 +08:00
weizhihong 6fa2adb7cd 【会话信息,在用户是机器人时不发验证消息】 2023-05-12 16:51:48 +08:00
weizhihong 5073f9f788 【实训跳转至目标步骤功能】 2023-05-12 15:46:58 +08:00
joylink_zhangsai aace990217 修改宁波一延续保护异常触发的问题 2023-05-11 13:44:32 +08:00
weizhihong ecb29dbcc2 【会话群初始化空数据处理】 2023-05-10 16:20:54 +08:00
joylink_zhangsai dd1238d607 Merge remote-tracking branch 'origin/test' into test 2023-05-09 17:21:40 +08:00
joylink_zhangsai b0c3dabc38 增加一个ATS报警信息类型 2023-05-09 17:21:24 +08:00
tiger_zhou f963c811f7 一个用户同时只能存在一个仿真 2023-05-08 17:26:32 +08:00
tiger_zhou fdb53063b7 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-08 17:26:06 +08:00
joylink_zhangsai bf0bd580f7 创建仿真时保存地图功能信息;接口请求的仿真信息中添加地图功能信息 2023-05-08 16:38:09 +08:00
tiger_zhou 4e6e1efda7 ncc 列车图例调整 2023-05-08 16:15:59 +08:00
tiger_zhou 459c6856b2 一个用户同时只能存在一个仿真 2023-05-08 11:10:39 +08:00
tiger_zhou fdf503261e 一个用户同时只能存在一个仿真 2023-05-08 11:03:31 +08:00
joylink_zhangsai 877372b2cd 回滚创建仿真的限制 2023-05-06 18:20:56 +08:00
joylink_zhangsai 19acb558c2 Merge remote-tracking branch 'origin/test' into test 2023-05-06 18:12:19 +08:00
joylink_zhangsai 65eef78e42 增加查询“我”加入的仿真接口 2023-05-06 18:11:54 +08:00
tiger_zhou 2e630d6916 一个用户同时只能存在一个仿真 2023-05-06 17:06:11 +08:00
tiger_zhou b85ac76d3d 一个用户同时只能存在一个仿真 2023-05-06 16:37:39 +08:00
tiger_zhou cab64eea88 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-06 15:15:47 +08:00
tiger_zhou 94e2ca2c7f 考试单操,场景重复回答步骤的问题 2023-05-06 15:15:15 +08:00
tiger_zhou b2ff67fe7e Merge branch 'test-zy' into test 2023-05-06 15:03:52 +08:00
tiger_zhou 9d329efa3e Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-06 15:03:33 +08:00
tiger_zhou e6b7e71d3d 考试单操,场景重复回答步骤的问题 2023-05-06 15:03:20 +08:00
tiger_zhou 5f8511b200 考试单操,场景重复回答步骤的问题 2023-05-06 15:02:26 +08:00
weizhihong 57aa61b03c 【功能模板生成客户端逻辑】 2023-05-06 13:36:08 +08:00
tiger_zhou c77ef0b669 考试单操,场景重复回答步骤的问题 2023-05-06 10:45:27 +08:00
tiger_zhou 28b421a073 考试单操,场景重复回答步骤的问题 2023-05-06 10:32:25 +08:00
weizhihong 346d3171f2 【增加规则设置的分数】 2023-05-06 10:06:55 +08:00
weizhihong 6a969fe843 【增加实训生成名称解析规则】 2023-05-05 18:28:24 +08:00
tiger_zhou fba36af273 考试单操,场景重复回答步骤的问题 2023-05-05 15:41:01 +08:00
joylink_zhangsai 4a09b427e5 取消授权码拦截器的注释 2023-05-05 15:37:41 +08:00
weizhihong 9b188dc9d9 【生成实训时,名称生成规则修改】 2023-05-05 13:31:57 +08:00
weizhihong 440d2df836 【单操实训生成定位】 2023-05-05 13:22:26 +08:00
tiger_zhou 8d4ac98eb9 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-05 11:10:58 +08:00
tiger_zhou 806718bb7e 考试标签筛选问题 2023-05-05 11:09:12 +08:00
weizhihong 132a8c4755 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-05-05 11:03:28 +08:00
weizhihong 0b7ccabb16 【修改已发布实训label信息】 2023-05-05 11:03:22 +08:00
tiger_zhou e516ad0be4 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-05 10:56:07 +08:00
tiger_zhou eb16f39745 列车图例显示位置调整 2023-05-05 10:55:46 +08:00
weizhihong 1d4918f52d 【打分返回结果修改】 2023-05-05 10:31:16 +08:00
weizhihong 2f8604c6bd 【表sql】 2023-05-05 10:12:34 +08:00
weizhihong 4e7e3cb457 【实训默认打分规则】 2023-05-05 10:12:10 +08:00
tiger_zhou edf707fbb2 列车图例显示位置调整 2023-05-04 17:42:47 +08:00
tiger_zhou 8180d2136c 列车图例显示位置调整 2023-05-04 16:11:29 +08:00
tiger_zhou 8bd766a301 列车图例显示位置调整 2023-05-04 15:53:09 +08:00
weizhihong 943c46bda7 【单操打分规则逻辑修改】 2023-05-04 15:14:10 +08:00
tiger_zhou 6825eb02bd 列车图例显示位置调整 2023-05-04 14:06:36 +08:00
tiger_zhou c78ff9dda1 列车图例显示位置调整 2023-05-04 13:26:27 +08:00
weizhihong 867b4be020 【群组已读消息逻辑】 2023-05-04 11:21:01 +08:00
weizhihong 8a12446080 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test 2023-05-04 11:02:20 +08:00
weizhihong 1844a69c69 【根据地图ID获取客户端信息】 2023-05-04 11:02:02 +08:00
joylink_zhangsai aa5cc0b333 修改机器人驾驶的判定条件 2023-05-04 11:01:07 +08:00
tiger_zhou f51abb1865 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-05-04 10:11:40 +08:00
tiger_zhou f3ff63431c 列车图例显示位置调整 2023-05-04 10:11:13 +08:00
weizhihong 07008b74b7 【读取群组消息逻辑修改】 2023-05-04 09:51:59 +08:00
tiger_zhou 5128cd5ea6 列车图例显示位置调整 2023-05-04 09:17:06 +08:00
joylink_zhangsai 77c985897a Merge remote-tracking branch 'origin/test' into test 2023-04-28 11:04:28 +08:00
joylink_zhangsai 41739011ed 列车接管逻辑及操作 2023-04-28 11:04:16 +08:00
tiger_zhou f248c336b4 Merge remote-tracking branch 'origin/test' into test 2023-04-27 16:12:11 +08:00
tiger_zhou b97ef2c036 列车图例显示位置调整 2023-04-27 16:11:00 +08:00
weizhihong f2244ea5fa 【仿真初始化时,群组信息没初始化BUG】 2023-04-27 15:23:02 +08:00
weizhihong 6527d042ea 【操作执行事件增加结果】【实训语音结果校验结果返回】 2023-04-27 11:28:11 +08:00
weizhihong f3dd343a1c 【客户端列表】 2023-04-27 10:25:31 +08:00
tiger_zhou 1bcf4a9e13 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-27 09:35:53 +08:00
tiger_zhou cf6b6f5a9a 列车图例显示位置调整 2023-04-27 09:35:41 +08:00
tiger_zhou 91b61d697c Merge remote-tracking branch 'origin/test' into test 2023-04-27 09:31:17 +08:00
tiger_zhou 932718ee0b 列车图例显示位置调整 2023-04-27 09:30:11 +08:00
tiger_zhou 50053c2b36 列车图例显示位置调整 2023-04-27 09:29:34 +08:00
weizhihong 32ed729788 【增加客户端列表ID】 2023-04-27 09:26:16 +08:00
tiger_zhou 5a33c35c15 列车图例显示位置调整 2023-04-26 17:59:46 +08:00
tiger_zhou af74502f37 列车图例显示位置调整 2023-04-26 17:55:46 +08:00
tiger_zhou 7a20c4a659 列车图例显示位置调整 2023-04-26 16:28:52 +08:00
tiger_zhou f4df139cbb Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-26 16:18:40 +08:00
joylink_zhangsai 0442a5723a Merge remote-tracking branch 'origin/test' into test 2023-04-26 16:15:42 +08:00
joylink_zhangsai cfcd24e04f Ats报警信息中增加报警信息处理方式;支持多点登录;仿真自动销毁时长改为30分钟;计划车越站时更新离站信息; 2023-04-26 16:15:18 +08:00
weizhihong f9b8d0f901 【地图客户端列表】 2023-04-26 16:07:30 +08:00
tiger_zhou c209942286 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-26 15:16:04 +08:00
weizhihong e19e4480bd 【添加成员覆盖BUG修复】【会话私聊接口】 2023-04-26 14:32:59 +08:00
tiger_zhou 10aadf7e93 列车图例显示位置调整 2023-04-26 11:11:23 +08:00
tiger_zhou b3b749ca80 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-26 11:03:23 +08:00
tiger_zhou 5d57a1a57b 列车图例显示位置调整 2023-04-26 11:01:43 +08:00
weizhihong ab6dfab00b 【实训ID类型修改】 2023-04-25 16:45:34 +08:00
weizhihong 1808395ba2 【大铁运行方向多余代码删除】 2023-04-25 16:27:18 +08:00
weizhihong 5b4e99fd82 【修改操作名称】 2023-04-25 11:19:44 +08:00
joylink_zhangsai ceada5f729 Merge remote-tracking branch 'origin/test' into test 2023-04-25 10:59:32 +08:00
joylink_zhangsai 70d99faa59 修改NCC报警信息;增加报警提示信息数据管理接口(暂时不用) 2023-04-25 10:59:20 +08:00
tiger_zhou 80f42f30f8 列车图例显示位置调整 2023-04-25 10:33:58 +08:00
tiger_zhou 7f003ec816 列车图例显示位置调整 2023-04-24 15:25:22 +08:00
tiger_zhou 786a56b8d1 列车图例显示位置调整 2023-04-24 14:04:27 +08:00
tiger_zhou 590bb3181f 列车图例显示位置调整 2023-04-24 10:25:21 +08:00
weizhihong 221200cfcd 【剧本保存会话群组草稿信息】 2023-04-23 18:14:13 +08:00
tiger_zhou f861256107 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-23 18:04:39 +08:00
tiger_zhou 5fb422d3d0 列车图例显示位置 2023-04-23 18:04:14 +08:00
weizhihong 3e3c977329 【增加NCC调度员角色】 2023-04-23 16:48:31 +08:00
weizhihong d9fbac8dd8 【仿真创建群组接口增加群头像信息】 2023-04-23 15:58:43 +08:00
weizhihong d2f271fa4e 【删除无效的包引入】 2023-04-23 09:34:32 +08:00
weizhihong a9559e2455 【批量处理机器人已读操作】 2023-04-21 17:50:17 +08:00
weizhihong a26d883e99 【群组消息大小写问题,人员进组时名字获取】 2023-04-21 10:41:00 +08:00
weizhihong e16437b347 【调整群组事件处理结构】 2023-04-21 10:18:08 +08:00
tiger_zhou e83d5dfae6 列车图例显示位置 2023-04-20 17:42:05 +08:00
weizhihong 77ee7005f1 【先取消群组语音识别】 2023-04-20 16:09:30 +08:00
tiger_zhou 90d6a1200a Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-20 14:13:22 +08:00
tiger_zhou d6ae7d4acf 列车图例显示位置 2023-04-20 14:12:29 +08:00
weizhihong 07aa27bd4e 【会话回复逻辑人家机器人消息不做回复操作】 2023-04-20 09:58:03 +08:00
weizhihong 550b85b8ea 【处理发送消息BUG】 2023-04-19 17:59:42 +08:00
weizhihong f8f7cc03df 【修改歧义参数名】 2023-04-19 17:50:08 +08:00
weizhihong 91ad315825 【增加改方按钮抬起验证】 2023-04-19 17:21:35 +08:00
tiger_zhou 3829f12f08 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-19 17:13:15 +08:00
weizhihong dc68b2daeb 【用户群组多余操作接口、表删除】 2023-04-19 16:53:37 +08:00
tiger_zhou d87fb8479a Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy
 Conflicts:
	src/main/java/club/joylink/rtss/simulation/cbtc/work/MetroSimulationWorkServiceImpl.java
2023-04-19 16:15:38 +08:00
tiger_zhou 734b0bc6a9 列车图例显示位置 2023-04-19 16:14:01 +08:00
joylink_zhangsai 56c5c6b3d3 Merge remote-tracking branch 'origin/test' into test 2023-04-19 13:40:23 +08:00
joylink_zhangsai 6045cb3c2b 增加NCC绘图数据 2023-04-19 13:40:00 +08:00
weizhihong c499eb0ec3 【修改会话保存结构】 2023-04-19 11:29:19 +08:00
weizhihong a0ff4e6962 【会话组结构调整】 2023-04-19 09:28:03 +08:00
joylink_zhangsai 720154f53a NCC列车延误报警逻辑修改;修改列车最大制动力计算逻辑 2023-04-18 18:05:24 +08:00
joylink_zhangsai d354ed9fd7 Merge remote-tracking branch 'origin/test' into test 2023-04-18 18:04:12 +08:00
weizhihong 5359bf1c27 【修改群组BUG】 2023-04-18 16:33:24 +08:00
joylink_zhangsai 4a647ffb84 Merge remote-tracking branch 'origin/test' into test 2023-04-18 15:08:25 +08:00
tiger_zhou 220d47b1a9 Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-18 15:03:11 +08:00
weizhihong 04ab5e0aef 【增加群组头像字段】 2023-04-18 14:31:41 +08:00
tiger_zhou a51a09c23b Merge branch 'test' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-zy 2023-04-18 13:10:42 +08:00
weizhihong c02fa14d31 【修改语音识别成员解析逻辑】 2023-04-18 11:31:47 +08:00
joylink_zhangsai 57eaa241bb NCC列车延误报警 2023-04-18 09:46:53 +08:00
weizhihong 0dddb9b4e8 【语音识别与群组会话事件添加】 2023-04-17 18:24:00 +08:00
tiger_zhou 6ca90b9b0d 修改ctc出入口未关联车站的问题 2023-04-17 17:45:07 +08:00
weizhihong 1eb4e2c6cf 【群组发送消息】 2023-04-17 16:58:12 +08:00
weizhihong c88ae2b17b 【仿真会话群组通知消息事件处理】 2023-04-17 16:48:29 +08:00
weizhihong d83de6f4bd 【会话群组消息通知事件】 2023-04-17 14:03:23 +08:00
weizhihong ad2900926e Merge branch 'test-training2' into test 2023-04-17 09:45:11 +08:00
weizhihong 8fd00384d4 【用户组仿真操作】 2023-04-17 09:43:11 +08:00
joylink_zhangsai 598e5e2491 Merge remote-tracking branch 'origin/test-training2' into test 2023-04-14 18:36:42 +08:00
joylink_zhangsai b90345620a 清除报错 2023-04-14 18:27:11 +08:00
tiger_zhou 377d3d989f 数据配置 2023-04-14 17:16:13 +08:00
tiger_zhou cfe6eb91e0 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-14 17:04:04 +08:00
tiger_zhou 4cf212a5a6 语音配置 2023-04-14 17:03:50 +08:00
weizhihong 661c682d85 【增加群组会话service】 2023-04-14 16:45:01 +08:00
weizhihong 0d1f5bf56b 【群组会话实体,仿真获取群组接口】 2023-04-14 16:25:33 +08:00
tiger_zhou 3580f135a0 Merge remote-tracking branch 'origin/test-training2' into test 2023-04-14 15:51:48 +08:00
tiger_zhou c3b161d9ed 共享数据的显示及考试 2023-04-14 15:29:00 +08:00
tiger_zhou 4ee7f99e64 共享数据的显示及考试 2023-04-14 14:30:16 +08:00
tiger_zhou 40069c5354 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-14 14:07:45 +08:00
tiger_zhou 972611128b 共享数据的显示及考试 2023-04-14 14:06:08 +08:00
tiger_zhou 16ff18e738 共享数据的显示及考试 2023-04-14 13:49:41 +08:00
weizhihong 5a0e1051fb 【会话群组基础信息CRUD】 2023-04-14 11:28:50 +08:00
weizhihong 81cfda9d20 【生成实训删除组织筛选】 2023-04-13 18:28:16 +08:00
weizhihong 2de8ff955b 【单操实训共享筛选】 2023-04-13 17:52:29 +08:00
weizhihong f33ac9c2c4 【发布单操实训共享字段添加】 2023-04-13 17:39:53 +08:00
tiger_zhou 593504950d 调整 教学管理-》实训管理查询需要根据orgid 过滤,考试管理实训数量过滤根据orgid 2023-04-13 17:34:52 +08:00
tiger_zhou bd2b96ed6d 调整 教学管理-》实训管理查询需要根据orgid 过滤,考试管理实训数量过滤根据orgid 2023-04-13 17:18:01 +08:00
weizhihong 997a1eac71 【修改生成实训时,对应的项目信息】 2023-04-13 14:49:17 +08:00
weizhihong a66023a068 【修改项目组织时,增加修改已发布生成的实训组织信息】
【检验项目配置编码逻辑修改】
2023-04-12 18:55:18 +08:00
weizhihong 4d5b5ea6c1 【参数配置时增加定值设置】 2023-04-12 15:54:41 +08:00
tiger_zhou 503563ad05 用户实训数据管理/用户考试管理需要添加根据手机号或者用户ID查询 2023-04-12 13:32:39 +08:00
tiger_zhou aea8007a60 调整 2023-04-12 11:17:01 +08:00
tiger_zhou 91985fd241 调整 2023-04-12 10:49:46 +08:00
tiger_zhou 851b259f81 修改添加指令操作的参数类型 2023-04-11 17:53:57 +08:00
tiger_zhou 1ef8a6e41e 修改根据已知数据获取未知数据的问题 2023-04-11 16:32:06 +08:00
weizhihong ca6870ae17 【人员匹配索引修改】 2023-04-11 14:50:22 +08:00
weizhihong dc461b9fce 【修改字符串截取BUG】 2023-04-11 14:12:34 +08:00
weizhihong f38c3bd1ba 【修改语音识别字符匹配结束位置索引】 2023-04-11 14:00:43 +08:00
weizhihong 83c5d6e644 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2 2023-04-11 13:39:16 +08:00
weizhihong 4c0f6cae44 【删除多余注释、多余引入】 2023-04-11 13:39:09 +08:00
tiger_zhou 3fa0549d72 Merge remote-tracking branch 'origin/test-training2' into test-training2 2023-04-11 13:25:37 +08:00
tiger_zhou 7382b9af0b 数据管理 2023-04-11 13:24:56 +08:00
weizhihong f750e8fd9d 【语音识别拼音处理逻辑修改】
【根据语音识别Group索引获取原位置字符串】
2023-04-11 13:24:21 +08:00
tiger_zhou cdd12fd1b8 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin
 Conflicts:
	src/main/java/club/joylink/rtss/services/voice/discriminate/OperateParseServiceImpl.java
	src/main/java/club/joylink/rtss/simulation/cbtc/discriminate/ExtractRule.java
2023-04-11 13:20:37 +08:00
tiger_zhou 7842e48bc8 数据管理 2023-04-11 13:17:06 +08:00
weizhihong 2890997cdd 【获取解析参数时,索引对应】 2023-04-11 10:42:05 +08:00
weizhihong d967a3c80f 【语音识别处理纠正后的信息】 2023-04-11 10:36:31 +08:00
weizhihong 621cd8befa 【语音识别逻辑修改】 2023-04-10 17:13:16 +08:00
tiger_zhou 53fd77af5c 数据管理 2023-04-10 15:34:42 +08:00
weizhihong f81c160b21 【测试方法】 2023-04-10 15:04:13 +08:00
weizhihong cf592fe9ff Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2 2023-04-10 15:03:55 +08:00
weizhihong 5ba922c568 【操作指令执行测试类,成员匹配BUG】 2023-04-10 15:03:50 +08:00
tiger_zhou c46b4fd97c 合并 2023-04-10 14:10:53 +08:00
tiger_zhou c7e13aebe9 Merge remote-tracking branch 'origin/test-training2' into test-training2
# Conflicts:
#	src/main/java/club/joylink/rtss/simulation/cbtc/discriminate/ExtractRule.java
2023-04-10 13:52:29 +08:00
tiger_zhou 14da291331 语音指令 2023-04-10 13:50:08 +08:00
weizhihong 1748f7c42d 【实现简单的提取规则(未对入参做校准处理)】 2023-04-10 13:42:57 +08:00
tiger_zhou 0eda6a435a Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin
 Conflicts:
	src/main/java/club/joylink/rtss/util/PinYinUtil.java
2023-04-10 13:06:01 +08:00
weizhihong d3bb96d95e 【拼音处理】 2023-04-10 10:51:40 +08:00
weizhihong 35b1287875 【修改参数正则解析逻辑】 2023-04-10 10:25:00 +08:00
weizhihong 26719b4685 【修改语音指令参数的解析逻辑】 2023-04-10 10:11:28 +08:00
tiger_zhou 600f4ebe04 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-07 18:09:59 +08:00
weizhihong e31facba91 【调整语音指令实体参数】 2023-04-07 17:51:18 +08:00
tiger_zhou abde6c0e17 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-07 16:59:05 +08:00
weizhihong 264306b0dc 【语音识别代码调整 v0.0.1】 2023-04-07 16:58:00 +08:00
joylink_zhangsai 6ac172edbd 删除一些无用的东西 2023-04-07 13:24:57 +08:00
tiger_zhou 96444da8d8 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-07 13:16:16 +08:00
tiger_zhou 723de7ce28 还原 语音指令 2023-04-07 13:16:01 +08:00
weizhihong 81f89a6aec 【语音识别处理逻辑流程(初稿)】 2023-04-07 13:06:47 +08:00
tiger_zhou db606a2745 Merge branch 'test-training2' into test 2023-04-06 18:09:48 +08:00
tiger_zhou e63cfbf5ad Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-04 16:38:19 +08:00
weizhihong 78e8f84382 【修复地铁乘客乘降状态不发车BUG】 2023-04-03 15:27:30 +08:00
tiger_zhou e25cfad883 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-04-03 13:36:47 +08:00
tiger_zhou d141fd8e52 语音指令 2023-04-03 13:36:36 +08:00
weizhihong 04d46be14c 【修改修改预选模式、机器人驾驶代码】 2023-03-31 15:10:19 +08:00
tiger_zhou f6dd8e7a42 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-03-31 14:50:46 +08:00
tiger_zhou df93f3d0ce 修改问题:
综合演练中,非管理员的成员主动退出后(直接叉掉),显示成员掉线,再次输入仿真号进不去综合演练,进来需要管理员踢出去才能进来
2023-03-31 13:34:37 +08:00
tiger_zhou 24da4a2e94 语音指令 2023-03-31 11:21:02 +08:00
tiger_zhou d5a43c0af9 语音指令 2023-03-31 10:13:07 +08:00
tiger_zhou a23bf72997 语音指令 2023-03-29 17:40:02 +08:00
tiger_zhou 2445287f8c 语音指令 2023-03-28 15:43:03 +08:00
joylink_zhangsai 01f7105f02 增加:导入学生时创建的账号增加orgId参数 2023-03-28 11:08:31 +08:00
joylink_zhangsai 8ad4877995 修改say生成的PlcGateway配置 2023-03-25 16:42:04 +08:00
joylink_zhangsai 8f7bec9854 透传服务bug修改-by 卫 2023-03-20 14:09:05 +08:00
joylink_zhangsai a0c94047f6 Merge remote-tracking branch 'origin/test-training2' into test 2023-03-20 11:41:21 +08:00
weizhihong 246bfbe92c 【AFC透传服务协议编码修改】 2023-03-20 11:39:01 +08:00
joylink_zhangsai 0a9d878583 Merge remote-tracking branch 'origin/test-training2' into test 2023-03-20 11:11:06 +08:00
weizhihong 273a33dea1 【修改透传协议解析配置】 2023-03-20 11:10:31 +08:00
joylink_zhangsai 5a9b7ea436 Merge remote-tracking branch 'origin/test-training2' into test 2023-03-20 10:15:59 +08:00
weizhihong 60fca3df21 【还原modbus服务响应】 2023-03-20 10:14:28 +08:00
tiger_zhou 05a8045679 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-03-13 09:17:37 +08:00
joylink_zhangsai a571e1b897 修改苏安院实体设备逻辑 2023-03-12 19:36:30 +08:00
joylink_zhangsai c2f3ddc9a0 Merge remote-tracking branch 'origin/test' into test 2023-03-11 22:21:33 +08:00
joylink_zhangsai d4fc3ebbe0 修改苏安院实体设备逻辑 2023-03-11 22:21:21 +08:00
joylink_zhangsai 7c54f0976b 修改苏安院实体设备逻辑 2023-03-11 21:50:28 +08:00
joylink_zhangsai e72837d793 修改苏安院实体设备逻辑 2023-03-11 21:46:07 +08:00
joylink_zhangsai b25bf1d0ee 修改苏安院实体设备逻辑 2023-03-11 21:37:13 +08:00
joylink_zhangsai 587a7bc7cf 修改苏安院实体设备逻辑 2023-03-11 17:55:14 +08:00
joylink_zhangsai f8c3c530ad 修改配置 2023-03-10 09:51:03 +08:00
tiger_zhou 2aea562afc Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin 2023-03-08 10:27:10 +08:00
weizhihong 643b63f287 【服务写数据无效情况】 2023-03-08 10:23:25 +08:00
tiger_zhou 152e144f96 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2-zhouyin
 Conflicts:
	src/main/java/club/joylink/rtss/simulation/cbtc/device/real/afctransfer/AfcTransferServer.java
2023-03-08 09:57:43 +08:00
tiger_zhou c6256b9d13 log 信息 2023-03-08 09:57:10 +08:00
weizhihong 6bf292df47 【AFC 网关解析逻辑处理(网关部署成功后删除)】 2023-03-08 09:45:20 +08:00
walker c1a36a0503 添加AFC modbus消息透传tcp服务 2023-03-06 17:56:13 +08:00
joylink_zhangsai f03143740f Merge remote-tracking branch 'origin/master' into test-training2 2023-03-01 16:54:16 +08:00
joylink_zhangsai cbfe1fbf87 修改仿真设备数据构建bug 2023-03-01 15:58:21 +08:00
weizhihong 4e242417aa 【切换预选模式修改、增加开启ATO操作、大铁列车托管修改行驶至前方站与进路闭塞行车】 2023-02-23 13:27:50 +08:00
joylink_zhangsai c4ee87eccc Merge remote-tracking branch 'origin/test-training2' into test-training2 2023-02-22 16:55:46 +08:00
joylink_zhangsai 2e27c0410f 修改组织结构树中的用户名称为 昵称(名称) 2023-02-22 16:55:20 +08:00
weizhihong 3b6f476732 【MINIO文件上传问题修改】【列车模式转换死循环问题】 2023-02-22 14:11:01 +08:00
weizhihong d215284d1e 【MINIO文件上传时,增加版本id,需要在MINIO服务器开启版本配置】 2023-02-21 17:32:32 +08:00
joylink_zhangsai 0e8b746f8a 增/改线路功能参数时,将value为空字符串的item移除 2023-02-21 17:17:26 +08:00
weizhihong 37418e84a1 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2 2023-02-21 15:55:35 +08:00
weizhihong 5a27cc414e 【上传MINIO文件时,逻辑删除原有旧数据】 2023-02-21 15:55:29 +08:00
joylink_zhangsai 1692a20fbd 增加一个跨线路修改线路功能数据的接口 2023-02-21 15:07:37 +08:00
joylink_zhangsai e7b817c2d4 Merge remote-tracking branch 'origin/test-training2' into test-training2 2023-02-20 17:26:46 +08:00
joylink_zhangsai b36376863e 小改动 2023-02-20 17:26:27 +08:00
joylink_zhangsai a5366241ef 增加地图功能模板管理及[使用模板生成地图功能]的功能 2023-02-20 17:25:40 +08:00
weizhihong 5d722f43d9 【修改为单角色直接同意,多角色则一直等待】 2023-02-20 15:59:55 +08:00
weizhihong 2719d30267 【将自动模式转换自动审批延迟10s同意】 2023-02-20 15:46:58 +08:00
weizhihong b95df03c65 Merge branch 'test-training2' of https://git.code.tencent.com/lian-cbtc/rtss-server into test-training2 2023-02-20 15:05:41 +08:00
weizhihong b5c6f7a9a2 【综合演练模式转换不再做自动同意操作】 2023-02-20 15:05:35 +08:00
joylink_zhangsai cfd13f863b 机器人驾驶bug修改 2023-02-20 14:46:35 +08:00
tiger_zhou 8728d9ffa0 Merge branch 'test-training2' 2023-02-20 09:27:44 +08:00
tiger_zhou 94c07b26dc Merge branch 'test-training2' 2023-02-17 18:42:55 +08:00
tiger_zhou 9b12e5adcb Merge remote-tracking branch 'origin/test-training2' 2023-02-17 18:19:03 +08:00
joylink_zhangsai 2a9d51d629 Merge remote-tracking branch 'origin/master' 2023-01-29 15:39:03 +08:00
thesai daec9c8aaf Merge remote-tracking branch 'origin/test' 2022-05-29 20:20:25 +08:00
joylink_zhangsai d703a3e128 Merge remote-tracking branch 'origin/test' 2021-04-12 19:07:23 +08:00
joylink_zhangsai 9656fdb80e Merge remote-tracking branch 'origin/test' 2021-04-12 18:50:08 +08:00
joylink_zhangsai 7fad4fd3ae Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/club/joylink/rtss/wechat/MiniProgramAccessTokenManager.java
#	src/main/java/club/joylink/rtss/wechat/MiniProgramServiceImpl.java
2020-12-31 18:21:41 +08:00
walker-sheng 9426e4ddeb 修改微信服务获取token接口调用 2020-12-30 14:38:51 +08:00
walker-sheng 4628dc3fcb 修改小程序access_token获取 2020-12-29 18:37:29 +08:00
641 changed files with 121905 additions and 53454 deletions

View File

@ -0,0 +1,32 @@
name: 公网服务发布
run-name: ${{ gitea.actor }} is testing out Gitea Actions
on:
schedule:
- cron: '30 3 * * 1' # 每周一的凌晨3:30
jobs:
Docker-Build-Push:
runs-on: joylink-local233
steps:
- name: 发布到正式环境1
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.PUB1_DOMAIN_SSH_HOST }}
port: ${{ secrets.PUB1_DOMAIN_SSH_PORT }}
username: ${{ secrets.PUB1_DOMAIN_SSH_USER }}
password: ${{ secrets.PUB1_DOMAIN_SSH_PASSWORD }}
script: |
docker rm -f rt-sim-training-service || echo "rt-sim-training-service not exist"
docker pull gitea.joylink.club/joylink/rt-sim-training-service:latest
docker run --name rt-sim-training-service -it -u root --restart=always -d -e APP_ENV=prd -p 9000:9000 -p 19000:19000 -v /usr/local/joylink/logs/rtss:/usr/local/joylink/logs/rtss gitea.joylink.club/joylink/rt-sim-training-service:latest
- name: 发布到正式环境2
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.PUB2_DOMAIN_SSH_HOST }}
port: ${{ secrets.PUB2_DOMAIN_SSH_PORT }}
username: ${{ secrets.PUB2_DOMAIN_SSH_USER }}
password: ${{ secrets.PUB2_DOMAIN_SSH_PASSWORD }}
script: |
docker rm -f rt-sim-training-service || echo "rt-sim-training-service not exist"
docker pull gitea.joylink.club/joylink/rt-sim-training-service:latest
docker run --name rt-sim-training-service -it -u root --restart=always -d -e APP_ENV=prd -p 9000:9000 -p 19000:19000 -v /usr/local/joylink/logs/rtss:/usr/local/joylink/logs/rtss gitea.joylink.club/joylink/rt-sim-training-service:latest

View File

@ -0,0 +1,61 @@
name: CI
run-name: ${{ gitea.actor }} is testing out Gitea Actions
on:
push:
branches:
- local-test
jobs:
Docker-Build:
runs-on: joylink-local233
steps:
- name: 检出代码
uses: https://gitea.joylink.club/actions/checkout@v4
with:
submodules: recursive
- name: 设置java环境
uses: https://gitea.joylink.club/actions/setup-java@v4
with:
java-version: '11'
distribution: 'zulu'
cache: 'maven'
cache-dependency-path: './pom.xml'
- name: 设置Maven环境
uses: https://gitea.joylink.club/actions/local-setup-maven@v0.1.1
with:
maven-version: 3.8.8
- name: 构建
run: |
mvn -Dmaven.test.skip=true clean package
- name: 设置 Docker
uses: https://gitea.joylink.club/actions/local-setup-docker-cli-action@v0.1.1
- name: 设置 Docker Buildx
uses: https://gitea.joylink.club/actions/local-setup-buildx-action@v0.1.3
- name: docker登录gitea.joylink.club
uses: https://gitea.joylink.club/docker/login-action@v3
with:
registry: gitea.joylink.club
username: shengxuqiang
password: ${{ secrets.SHENGXUQIANG_PASSWORD }}
- name: Docker Build and push
uses: https://gitea.joylink.club/docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
gitea.joylink.club/joylink/rt-sim-training-service:local-test
- name: 发布到本地测试环境
uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
with:
host: ${{ secrets.LOCAL_233_SSH_HOST }}
port: ${{ secrets.LOCAL_233_SSH_PORT }}
username: ${{ secrets.LOCAL_233_SSH_USER }}
password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
script: |
docker rm -f rt-sim-training-service || echo "rt-sim-training-service not exist"
docker pull gitea.joylink.club/joylink/rt-sim-training-service:local-test
docker run --name rt-sim-training-service --restart=always --network net --ip 192.168.53.3 -d -e APP_ENV=local-test -p 9000:9000 -p 19000:19000 -v /usr/local/joylink/logs/rtss:/usr/local/joylink/logs/rtss gitea.joylink.club/joylink/rt-sim-training-service:local-test
# - name: 清理tag为none的镜像
# run: |
# docker rmi $(docker images --filter "dangling=true" -q --no-trunc) 2>/dev/null || echo "No dangling images to remove"

View File

@ -0,0 +1,61 @@
name: 版本发布docker构建并上传
run-name: ${{ gitea.actor }} is testing out Gitea Actions
on:
release:
types: [ published ]
jobs:
Docker-Build-Push:
runs-on: joylink-local233
steps:
- name: 检出代码
uses: https://gitea.joylink.club/actions/checkout@v4
with:
submodules: recursive
- name: 设置java环境
uses: https://gitea.joylink.club/actions/setup-java@v4
with:
java-version: '11'
distribution: 'zulu'
cache: 'maven'
cache-dependency-path: './pom.xml'
- name: 设置Maven环境
uses: https://gitea.joylink.club/actions/local-setup-maven@v0.1.1
with:
maven-version: 3.8.8
- name: 构建
run: |
mvn -Dmaven.test.skip=true clean package
- name: 设置 Docker
uses: https://gitea.joylink.club/actions/local-setup-docker-cli-action@v0.1.1
- name: 设置 Docker Buildx
uses: https://gitea.joylink.club/actions/local-setup-buildx-action@v0.1.3
- name: docker登录gitea.joylink.club
uses: https://gitea.joylink.club/docker/login-action@v3
with:
registry: gitea.joylink.club
username: shengxuqiang
password: ${{ secrets.SHENGXUQIANG_PASSWORD }}
- name: Docker Build and push
uses: https://gitea.joylink.club/docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
gitea.joylink.club/joylink/rt-sim-training-service:${{ github.event.release.tag_name }}
gitea.joylink.club/joylink/rt-sim-training-service:latest
# - name: 清理tag为none的镜像
# run: |
# docker rmi $(docker images --filter "dangling=true" -q --no-trunc) 2>/dev/null || echo "No dangling images to remove"
# - name: 发布到本地测试环境
# uses: https://gitea.joylink.club/appleboy/ssh-action@v1.0.3
# with:
# host: ${{ secrets.LOCAL_233_SSH_HOST }}
# port: ${{ secrets.LOCAL_233_SSH_PORT }}
# username: ${{ secrets.LOCAL_233_SSH_USER }}
# password: ${{ secrets.LOCAL_233_SSH_PASSWORD }}
# script: |
# docker rm -f rt-sim-training-service || echo "rt-sim-training-service not exist"
# docker pull gitea.joylink.club/joylink/rt-sim-training-service:latest
# docker run --name rt-sim-training-service --restart=always --network net --ip 192.168.53.3 -d -e APP_ENV=prd -p 9000:9000 -p 19000:19000 -v /usr/local/joylink/logs/rtss:/usr/local/joylink/logs/rtss gitea.joylink.club/joylink/rt-sim-training-service:latest

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "rt-sim-training-message"]
path = rt-sim-training-message
url = http://120.46.212.6:3000/joylink/rt-sim-training-message.git

11
Dockerfile Normal file
View File

@ -0,0 +1,11 @@
FROM azul/zulu-openjdk-alpine:11
ADD target/rtss-0.0.1-SNAPSHOT.jar rtss-service.jar
ENV APP_ENV=prd
EXPOSE 9000 19000/tcp
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
CMD java -jar -Dfile.encoding=UTF-8 -Dspring.profiles.active=$APP_ENV /rtss-service.jar

7
README.md Normal file
View File

@ -0,0 +1,7 @@
# CI、CD说明
- 分支主要为developlocal-testmaster
- 本地233服务器部署方式为push到local-test分支即可触发
- 公网服务器发布方式:
1. push到master虽然可以用别的分支但不建议
2. 在版本发布处发布新版本触发构建docker镜像
3. 待docker镜像构建完成后点击Actions中CD_pub_deploy.yaml进入第一个任务点击重新运行所有任务进行服务发布

364
pom.xml
View File

@ -1,106 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>club.joylink</groupId>
<artifactId>rtss</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rtss</name>
<description> Rail transit simulation system</description>
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>club.joylink</groupId>
<artifactId>rtss</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rtss</name>
<description>Rail transit simulation system</description>
<properties>
<java.version>11</java.version>
<pagehelper.version>4.1.1</pagehelper.version>
</properties>
<properties>
<java.version>11</java.version>
<pagehelper.version>4.1.1</pagehelper.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
<!-- javax.validation -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!-- javax.validation -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
</dependency>
<!--spring切面aop依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--spring切面aop依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</dependency>
<dependency>
<groupId>com.digitalpetri.modbus</groupId>
<artifactId>modbus-codec</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</dependency>
<dependency>
<groupId>com.digitalpetri.modbus</groupId>
<artifactId>modbus-codec</artifactId>
<version>1.1.1</version>
</dependency>
<!-- 硬件检测依赖 -->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core-java11</artifactId>
<version>5.7.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-apache-httpclient</artifactId>
<version>0.2.1</version>
</dependency>
<!-- 硬件检测依赖 -->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core-java11</artifactId>
<version>5.7.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.github.wechatpay-apiv3</groupId>
<artifactId>wechatpay-apache-httpclient</artifactId>
<version>0.2.1</version>
</dependency>
<!-- <dependency>-->
<!-- <groupId>com.huawei.sis</groupId>-->
@ -130,65 +130,123 @@
<groupId>org.springframework.retry</groupId>
<artifactId>spring-retry</artifactId>
</dependency>-->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.3</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
<!-- iscs -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.19.3</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.3</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
<!-- iscs -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.23.1</version>
</dependency>
<dependency>
<groupId>com.hubspot.jackson</groupId>
<artifactId>jackson-datatype-protobuf</artifactId>
<version>0.9.12</version>
</dependency>
<!-- <dependency>
<groupId>com.chenlb.mmseg4j</groupId>
<artifactId>mmseg4j-core</artifactId>
<version>1.10.0</version>
</dependency>-->
<!-- <dependency>
<groupId>org.ansj</groupId>
<artifactId>ansj_seg</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.reflections</groupId>
<artifactId>reflections</artifactId>
<version>0.9.11</version>
</dependency>-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<!-- <dependency>
<groupId>info.debatty</groupId>
<artifactId>java-string-similarity</artifactId>
<version>2.0.0</version>
</dependency>-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>com.github.shalousun</groupId>
<artifactId>smart-doc-maven-plugin</artifactId>
<version>2.1.9</version>
<configuration>
<!--指定生成文档的使用的配置文件,配置文件放在自己的项目中-->
<configFile>./src/main/resources/smart-doc.json</configFile>
<!--smart-doc实现自动分析依赖树加载第三方依赖的源码如果一些框架依赖库加载不到导致报错这时请使用excludes排除掉-->
<!-- <excludes>-->
<!-- &lt;!&ndash;格式为groupId:artifactId;参考如下&ndash;&gt;-->
<!-- <exclude>com.alibaba:fastjson</exclude>-->
<!-- </excludes>-->
<!-- &lt;!&ndash;自1.0.8版本开始插件提供includes支持,配置了includes后插件会按照用户配置加载而不是自动加载因此使用时需要注意&ndash;&gt;-->
<!-- &lt;!&ndash;smart-doc能自动分析依赖树加载所有依赖源码原则上会影响文档构建效率因此你可以使用includes来让插件加载你配置的组件&ndash;&gt;-->
<!-- <includes>-->
<!-- &lt;!&ndash;格式为groupId:artifactId;参考如下&ndash;&gt;-->
<!-- <include>com.alibaba:fastjson</include>-->
<!-- </includes>-->
</configuration>
<executions>
<execution>
<!--如果不需要在执行编译时启动smart-doc则将phase注释掉-->
<!-- <phase>compile</phase>-->
<goals>
<!--smart-doc提供了html、openapi、markdown等goal可按需配置-->
<goal>html</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>com.github.shalousun</groupId>
<artifactId>smart-doc-maven-plugin</artifactId>
<version>2.1.9</version>
<configuration>
<!--指定生成文档的使用的配置文件,配置文件放在自己的项目中-->
<configFile>./src/main/resources/smart-doc.json</configFile>
<!--smart-doc实现自动分析依赖树加载第三方依赖的源码如果一些框架依赖库加载不到导致报错这时请使用excludes排除掉-->
<!-- <excludes>-->
<!-- &lt;!&ndash;格式为groupId:artifactId;参考如下&ndash;&gt;-->
<!-- <exclude>com.alibaba:fastjson</exclude>-->
<!-- </excludes>-->
<!-- &lt;!&ndash;自1.0.8版本开始插件提供includes支持,配置了includes后插件会按照用户配置加载而不是自动加载因此使用时需要注意&ndash;&gt;-->
<!-- &lt;!&ndash;smart-doc能自动分析依赖树加载所有依赖源码原则上会影响文档构建效率因此你可以使用includes来让插件加载你配置的组件&ndash;&gt;-->
<!-- <includes>-->
<!-- &lt;!&ndash;格式为groupId:artifactId;参考如下&ndash;&gt;-->
<!-- <include>com.alibaba:fastjson</include>-->
<!-- </includes>-->
</configuration>
<executions>
<execution>
<!--如果不需要在执行编译时启动smart-doc则将phase注释掉-->
<!-- <phase>compile</phase>-->
<goals>
<!--smart-doc提供了html、openapi、markdown等goal可按需配置-->
<goal>html</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>aliyun-central</id>
<url>https://maven.aliyun.com/repository/central</url>
</repository>
<repository>
<id>aliyun-snapshots</id>
<url>https://maven.aliyun.com/repository/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-central</id>
<url>https://maven.aliyun.com/repository/central</url>
</pluginRepository>
</pluginRepositories>
</project>

@ -0,0 +1 @@
Subproject commit 5dd7fdb3d568c829356fa59b746b559d17da49b8

View File

@ -1,51 +0,0 @@
-- auto-generated definition
create table audio_resources
(
id bigint auto_increment,
name varchar(128) null comment '名称',
`desc` varchar(256) null comment '描述',
url varchar(256) not null comment '资源地址',
create_time datetime not null comment '创建时间',
update_time datetime null comment '更新时间',
constraint audio_resources_id_uindex
unique (id)
)
comment '音频资源';
alter table audio_resources
add primary key (id);
-- auto-generated definition
create table iscs_device
(
id bigint auto_increment,
map_id bigint not null comment '地图id',
code varchar(64) not null comment '编号',
`system` varchar(32) null comment '所属系统',
station varchar(32) null comment '所属车站',
position varchar(32) null comment '具体位置',
type varchar(32) not null comment '设备类型',
constraint iscs_device_id_uindex
unique (id)
)
comment 'ISCS设备';
alter table iscs_device
add primary key (id);
-- auto-generated definition
create table iscs_system_resources
(
id bigint auto_increment,
map_id bigint not null comment '地图id',
`system` varchar(32) not null comment '系统',
type varchar(32) null comment '类型',
resource_ids varchar(1024) null comment '资源id集合',
constraint iscs_system_resources_id_uindex
unique (id)
)
comment 'ISCS系统资源';
alter table iscs_system_resources
add primary key (id);

View File

@ -1,12 +0,0 @@
-- 20220523
alter table `draft_map_station_direction_label`
ADD COLUMN `run_model` varchar(255) NULL comment '所属模式自动闭塞A、半自动闭塞S' AFTER `signal_code`,
ADD COLUMN `run_status` varchar(255) NULL comment '默认的接发状态,R接、D发、NO空' AFTER `run_model`,
ADD COLUMN `relative_code` varchar(255) NULL comment '相对方向编码' AFTER `run_status`;
-- 20220526
alter table `draft_map_station_direction_label`
drop COLUMN `relative_code`,
ADD COLUMN `relative_station_code` varchar(255) NULL comment '相对的车站编码' AFTER `run_status`,
ADD COLUMN `relative_label_enum` varchar(255) NULL comment '相对的方向口' AFTER `relative_station_code`;

View File

@ -1 +0,0 @@
alter table `draft_map_station_direction_label` ADD COLUMN `name` varchar(225) NULL comment '运行方向名称' AFTER `id`;

View File

@ -1,2 +0,0 @@
ALTER TABLE `sys_account`
ADD COLUMN `source` varchar(32) NULL COMMENT '账号来源' AFTER `roles`;

View File

@ -1,25 +0,0 @@
-- 课程表添加字段
ALTER TABLE `ls_lesson`
ADD COLUMN `org_id` bigint(20) NULL COMMENT '创建者创建这条数据时所属组织' AFTER `update_time`;
-- 数据处理SQL
UPDATE ls_lesson lesson,
org_user ou
SET lesson.org_id = ou.org_id
WHERE
lesson.creator_id = ou.user_id
AND ou.role = 'Admin'
AND lesson.sysFault = 0;
-- 考试表添加字段
ALTER TABLE `exam_definition`
ADD COLUMN `org_id` bigint NULL COMMENT '创建者创建这条数据时所属的组织' AFTER `passing_point`;
-- 数据处理SQL
UPDATE exam_definition exam,
org_user ou
SET exam.org_id = ou.org_id
WHERE
exam.creator_id = ou.user_id
AND ou.role = 'Admin'
AND exam.system = 0;

View File

@ -1,3 +0,0 @@
-- 出入口方向添加方向属性,需要重新编辑地图中出入口方向的属性
ALTER TABLE `draft_map_station_direction_label`
ADD COLUMN `io_direction` varchar(20) NULL COMMENT '出入口方向';

View File

@ -1,48 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : walker
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 30/08/2022 16:02:15
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for draft_training2
-- ----------------------------
DROP TABLE IF EXISTS `draft_training2`;
CREATE TABLE `draft_training2` (
`id` bigint NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训名称',
`map_id` bigint NULL DEFAULT NULL COMMENT '实训地图id',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '描述',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训类型(单操 single场景scene',
`label_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签,用于检索',
`map_location_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地图定位json',
`bg_scene_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '初始背景',
`final_scenes_json` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '实训编制完保存为最终场景json数据',
`run_plan_id` bigint NULL DEFAULT NULL COMMENT '运行图id',
`opera_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作列表json(List<Operation2VO>)',
`step_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '步骤列表json(List<Step2VO>的json)',
`scoring_rule_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '打分规则列表json(List<ScoringRuleVO>的json)',
`member_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '仿真内所有成员',
`player_id_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '参演的仿真成员id列表Json',
`failure_condition_json` varchar(555) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训失败判定条件',
`creator_id` bigint NULL DEFAULT NULL,
`create_time` datetime NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `map_id_index`(`map_id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 36 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,48 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : walker
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 30/08/2022 16:02:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for published_training2
-- ----------------------------
DROP TABLE IF EXISTS `published_training2`;
CREATE TABLE `published_training2` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '已发布实训的id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训名称',
`map_id` bigint NULL DEFAULT NULL COMMENT '实训地图id',
`description` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训描述',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训类型(单操 single场景scene',
`label_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '标签,用于检索',
`map_location_json` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '地图定位json',
`bg_scene_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '初始背景',
`run_plan_id` bigint NULL DEFAULT NULL COMMENT '运行图id',
`opera_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '操作列表json(List<Operation2VO>)',
`step_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '步骤列表json(List<Step2VO>的json)',
`scoring_rule_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '打分规则列表json(List<ScoringRuleVO>的json)',
`member_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '仿真内所有成员',
`player_id_json` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '参演的仿真成员id列表Json',
`failure_condition_json` varchar(555) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训失败判定条件',
`creator_id` bigint NULL DEFAULT NULL COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL,
`update_time` datetime NULL DEFAULT NULL,
`state` int NULL DEFAULT NULL COMMENT '已发布实训的状态(0-默认未知1-上架2-下架)',
`final_scenes_json` mediumtext CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL COMMENT '实训编制后的最终场景json数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 24 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,2 +0,0 @@
-- 武汉8号线添加第三方账号
INSERT INTO `joylink`.`sys_account` ( `account`, `parent_account`, `type`, `org_id`, `name`, `nickname`, `avatar_path`, `password`, `mobile`, `nationcode`, `email`, `wx_id`, `wx_union_id`, `wm_open_id`, `status`, `roles`, `source`, `create_time`, `update_user_id`, `update_time`) VALUES ('yjddzh_train_place', NULL, '2', NULL, NULL, '武汉8号线_train_place', NULL, 'train_place', 'train_place', NULL, 'yjddzh@tests.com', NULL, NULL, NULL, '1', '01', NULL, '2022-09-14 10:00:14', NULL, NULL);

View File

@ -1,36 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 15/09/2022 14:08:08
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for trace_training2
-- ----------------------------
DROP TABLE IF EXISTS `trace_training2`;
CREATE TABLE `trace_training2` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '实训草稿-已发布追踪表记录id',
`draft_id` bigint NULL DEFAULT NULL COMMENT 'draft_training2主键',
`draft_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '实训草稿名称',
`draft_map_id` bigint NULL DEFAULT NULL COMMENT '实训草稿地图id',
`pub_id` bigint NULL DEFAULT NULL COMMENT 'published_training2主键',
`pub_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '已发布实训名称',
`trace_creator_id` bigint NULL DEFAULT NULL COMMENT '追踪轨迹生成者即发布操作者',
`trace_time` datetime NULL DEFAULT NULL COMMENT '追踪轨迹生成时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,33 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 19/09/2022 14:54:30
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for draft_map_dis_station
-- ----------------------------
DROP TABLE IF EXISTS `draft_map_dis_station`;
CREATE TABLE `draft_map_dis_station` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '调度台逻辑数据记录id',
`map_id` bigint NULL DEFAULT NULL COMMENT '所属地图id',
`code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调度台编码',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调度台名称',
`station_list` varchar(600) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '调度台下辖车站的code列表array json',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,194 +0,0 @@
[20220923-wei-project.sql]
create TABLE `project` (
`id` int NOT NULL AUTO_INCREMENT comment '数据库唯一ID',
`mark_key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL comment '项目标识key,前端使用',
`code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL comment '项目编码,后端使用',
`name` varchar(255) DEFAULT NULL comment '项目名称',
`name_en` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '项目英文名称',
`simple_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '项目简称',
`create_time` datetime DEFAULT NULL comment '创建时间',
`update_time` datetime DEFAULT NULL comment '修改时间',
`status` int NOT NULL comment '项目标识状态',
`view_setting` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci comment '前端界面设置',
`view_show` int NOT NULL DEFAULT '1' comment '是否供前端选择',
`server_setting` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci comment '后端服务设置',
PRIMARY KEY (`id`),
KEY `mark_key` (`mark_key`) USING BTREE,
KEY `code` (`code`),
KEY `view_show` (`view_show`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'login', 'DEFAULT','城市轨道交通实训平台',' Urban Rail Transit Practical Training Platform'
,'','{"login":{"loginInfo":{"title":"城市轨道交通实训平台","titleEn":" Urban Rail Transit Practical Training Platform","loginPath":"/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login"},"design":{"loginInfo":{"title":"城市轨道交通设计平台","titleEn":" Urban Rail Transit Design Platform","loginPath":"/design/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login"}}','{"defaultProject":1,"loginCreateSimulation":0}', 0
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'xty', 'XTY','西安铁路职业技术学院城市轨道交通实训平台',''
,'西铁院','{"login":{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通实训平台","loginPath":"/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xty"},"design":{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xty"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'gzb', 'GZB','贵州装备制造职业学院城市轨道交通实训平台',''
,'贵州装备','{"login":{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通实训平台","loginPath":"/login?project=gzb","loginParam":"GZB","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=gzb"},"design":{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通设计平台","loginPath":"/design/login?project=gzb","titleDistance":"-150px","loginParam":"GZB","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=gzb"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'xadt', 'XADT','城市轨道交通实训平台',''
,'西安地铁','{"login":{"loginInfo":{"title":"城市轨道交通实训平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通实训平台","loginPath":"/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xadt"},"design":{"loginInfo":{"title":"城市轨道交通设计平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通设计平台","loginPath":"/design/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xadt"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'heb', 'HEB','城市轨道交通综合行车模拟仿真系统V1.0',''
,'哈尔滨','{"login":{"loginInfo":{"title":"城市轨道交通综合行车模拟仿真系统V1.0","loginTitle":"城市轨道交通综合行车模拟仿真系统V1.0","logoWidth":"140px","loginPath":"/login?project=heb","titleDistance":"150px","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=heb"},"design":{"loginInfo":{"title":"城市轨道交通设计平台V1.0","loginTitle":"城市轨道交通设计平台V1.0","logoWidth":"140px","titleDistance":"150px","loginPath":"/design/login?project=heb","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=heb"}}','{"defaultProject":1,"loginCreateSimulation":0,"controlDevice":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'nty', 'NTY','城轨高级信号系统(云平台通用版)',''
,'南铁院(通用版)','{"login":{"loginInfo":{"title":"城轨高级信号系统(云平台通用版)","loginPath":"/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nty"},"design":{"loginInfo":{"title":"城轨高级信号设计系统(云平台通用版)","loginPath":"/design/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nty"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'ntyc', 'NTYC','城轨高级信号系统(云平台专用版)',''
,'南铁院(专用版)','{"login":{"loginInfo":{"title":"城轨高级信号系统(云平台专用版)","loginPath":"/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyc"},"design":{"loginInfo":{"title":"城轨高级信号设计系统(云平台专用版)","loginPath":"/design/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyc"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'ntyl', 'NTYL','城轨高级信号系统(本地专用版)',''
,'南铁院(本地版)','{"login":{"loginInfo":{"title":"城轨高级信号系统(本地专用版)","loginPath":"/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyl"},"design":{"loginInfo":{"title":"城轨高级信号设计系统(本地专用版)","loginPath":"/design/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyl"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'sdy', 'SDY','江苏电子信息职业学院城市轨道交通实训平台',''
,'苏电院','{"login":{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通实训平台","loginPath":"/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=sdy"},"design":{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通设计平台","loginPath":"/design/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=sdy"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'bjd', 'BJD','城市轨道交通列车运行智慧辅助系统',''
,'北交大','{"login":{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","loginTitle":"空串","linkIcon":"@/assets/icon/link_bjd.png","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=bjd"},"design":{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/design/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","linkIcon":"","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=bjd"}}','{"defaultProject":1,"loginCreateSimulation":1, "createSimulationPermission":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'cgy', 'CGY','成都工业职业技术学院线网车站运营虚拟仿真实训中心',''
,'成都工业','{"login":{"loginInfo":{"title":"成都工业职业技术学院线网车站运营虚拟仿真实训中心","loginPath":"/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"loginInfo":{"title":"成都工业职业技术学院轨道交通虚拟仿真设计平台","loginPath":"/design/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0,"freeSource":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'wjls', 'WJLS','微机联锁仿真系统',''
,'微机联锁','{"login":{"loginInfo":{"title":"微机联锁仿真系统","loginPath":"/login?project=wjls","loginParam":"WJLS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":1,"createLocalSimulation":1,"defaultMemberId":"2"}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'drts', 'DRTS','全国行车调度员大赛训练系统',''
,'调度大赛','{"login":{"loginInfo":{"title":"全国行车调度员大赛训练系统","loginPath":"/login?project=drts","loginParam":"DRTS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"020"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"loginInfo":{"title":"行车调度员设计平台国赛备战版","loginPath":"/design/login?project=drts","loginParam":"DRTS","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"020"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":1,"mapNeedCharge":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'zzwwtest', 'ZZWWTEST','共赢列车仿真驾驶系统',''
,'郑州共赢考试','{"login":{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzwwtest","loginParam":"ZZWWTEST","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richor', 'RICHOR','中航锐创城市轨道交通实训平台',''
,'中航锐创','{"login":{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richor","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1},"design":{"thirdLogin":1,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'zzww', 'ZZWW','共赢列车仿真驾驶系统',''
,'郑州共赢','{"login":{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzww","loginParam":"ZZWW","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0,"freeSource":1,"defaultLoadTrain":1}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorlesson3d', 'RICHOR','中航锐创城市轨道交通实训平台',''
,'中航锐创(三维课程)','{"login":{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorlesson3d","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'nologo', 'NOLOGO','城市轨道交通实训平台',''
,'无logo','{"login":{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nologo"},"design":{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nologo"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorjoint', 'RICHOR_JOINT','中航锐创城市轨道交通实训平台',''
,'中航锐创(实训室)','{"login":{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"cctvUrl":"http://192.168.1.254","otherPlatformUrl":"/design/login?project=richorjoint"},"design":{"loginInfo":{"title":"中航锐创城市轨道交通设计平台","loginPath":"/design/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=richorjoint"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'srsandbox', 'SR_SANDBOX','上饶科技中等专业学校城市轨道交通实训平台',''
,'上饶沙盘','{"login":{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通实训平台","loginPath":"/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=srsandbox"},"design":{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通设计平台","loginPath":"/design/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=srsandbox"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'jxgm', 'JXGM','江西工业贸易职业技术学院城市轨道交通实训平台',''
,'江西工贸','{"login":{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通实训平台","loginPath":"/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=jxgm"},"design":{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"025"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=jxgm"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorygy', 'RICHOR_YGY','扬州工业职业技术学院城市轨道交通实训平台',''
,'扬州工业','{"login":{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通实训平台","loginPath":"/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1},"design":{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'say', 'SAY','江苏安全技术职业学院城市轨道交通实训平台',''
,'苏安院','{"login":{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通实训平台","loginPath":"/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=say"},"design":{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通设计平台","loginPath":"/design/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=say"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'unittecsty', 'UNITTEC_STY','轨道交通实训平台',''
,'众合-陕铁院','{"login":{"loginInfo":{"title":"轨道交通实训平台","loginPath":"/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=unittecsty"},"design":{"loginInfo":{"title":"轨道交通设计平台","loginPath":"/design/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=unittecsty"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorhhcj', 'RICHOR_HHCJ','红河财经学校城市轨道交通实训平台',''
,'红河财经','{"login":{"loginInfo":{"title":"红河财经学校城市轨道交通实训平台","loginPath":"/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"cctvUrl":"http://192.168.0.254","otherPlatformUrl":"/design/login?project=richorhhcj"},"design":{"loginInfo":{"title":"红河财经学校城市轨道交通设计平台","loginPath":"/design/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"otherPlatformUrl":"/login?project=richorhhcj"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'richorcxjs', 'RICHOR_CXJS','长兴技师学院城市轨道交通实训平台',''
,'长兴技校','{"login":{"loginInfo":{"title":"长兴技师学院城市轨道交通实训平台","loginPath":"/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1},"design":{"loginInfo":{"title":"长兴技师学院城市轨道交通设计平台","loginPath":"/design/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'yjddzh', 'YJDDZH','应急调度指挥系统',''
,'武汉8号线','{"login":{"loginInfo":{"title":"应急调度指挥系统","loginPath":"/login?project=yjddzh","loginParam":"YJDDZH","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0},"design":{"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'teaching', 'TEACHING','教学通用实训平台',''
,'教学通用','{"login":{"loginInfo":{"title":"教学通用实训平台","loginPath":"/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=teaching"},"design":{"loginInfo":{"title":"教学通用设计平台","loginPath":"/design/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=teaching"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);
insert into project(`mark_key`,`code`,`name`,`name_en`,`simple_name`,`view_setting`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
(
'hydrailway', 'HYD_RAILWAY','大铁交通综合行车模拟仿真系统V1.0',''
,'哈盈达大铁','{"login":{"loginInfo":{"title":"大铁交通综合行车模拟仿真系统V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hydrailway"},"design":{"loginInfo":{"title":"大铁交通设计平台V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hydrailway"}}','{"defaultProject":1,"loginCreateSimulation":0}',1
,NOW(),NOW(),1
);

View File

@ -1,15 +0,0 @@
-- 新题库
DROP TABLE IF EXISTS `rts_paper_question`;
CREATE TABLE `rts_paper_question` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '类型 选择题=select,判断题=judge,多选题=multi',
`question` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '问题内容',
`create_user_id` bigint DEFAULT NULL COMMENT '创建者id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`org_id` bigint DEFAULT NULL COMMENT '公司组织id',
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '标签',
`question_option` varchar(612) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '问题选项',
`question_answer` varchar(255) DEFAULT NULL COMMENT '答案,号隔开',
`is_del` int DEFAULT '0' COMMENT '是否删除0=否1=是',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -1,154 +0,0 @@
drop table IF EXISTS `project`;
create TABLE `project` (
`id` int NOT NULL AUTO_INCREMENT comment '数据库唯一ID',
`code` varchar(50) CHARACTER SET utf8mb4 NOT NULL comment '项目编码',
`name` varchar(255) DEFAULT NULL comment '项目名称',
`name_en` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL comment '项目英文名称',
`simple_name` varchar(255) CHARACTER SET utf8mb4 DEFAULT NULL comment '项目简称',
`create_time` datetime DEFAULT NULL comment '创建时间',
`update_time` datetime DEFAULT NULL comment '修改时间',
`status` int NOT NULL comment '项目标识状态',
`view_show` int NOT NULL DEFAULT '1' comment '是否供前端选择',
`server_setting` text CHARACTER SET utf8mb4 comment '后端服务设置',
PRIMARY KEY (`id`),
KEY `code` (`code`),
KEY `view_show` (`view_show`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
drop table IF EXISTS `project_view`;
create TABLE `project_view` (
`id` int NOT NULL AUTO_INCREMENT comment '主键',
`view_setting` text comment '前端界面设置',
`mark_key` varchar(255) CHARACTER SET utf8mb4 NOT NULL comment '前端标识key',
`project` varchar(255) CHARACTER SET utf8mb4 NOT NULL comment '对应项目',
`create_time` datetime DEFAULT NULL comment '创建时间',
`update_time` datetime DEFAULT NULL comment '修改时间',
`status` int DEFAULT '1' comment '状态',
PRIMARY KEY (`id`),
UNIQUE KEY `mark_key` (`mark_key`,`status`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4;
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('DEFAULT','城市轨道交通实训平台',' Urban Rail Transit Practical Training Platform','','{"defaultProject":1,"loginCreateSimulation":0}',0,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('XTY','西安铁路职业技术学院城市轨道交通实训平台','','西铁院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('GZB','贵州装备制造职业学院城市轨道交通实训平台','','贵州装备','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('XADT','城市轨道交通实训平台','','西安地铁','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('HEB','城市轨道交通综合行车模拟仿真系统V1.0','','哈尔滨','{"defaultProject":0,"loginCreateSimulation":0,"controlDevice":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NTY','城轨高级信号系统(云平台通用版)','','南铁院(通用版)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NTYC','城轨高级信号系统(云平台专用版)','','南铁院(专用版)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NTYL','城轨高级信号系统(本地专用版)','','南铁院(本地版)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('SDY','江苏电子信息职业学院城市轨道交通实训平台','','苏电院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('BJD','城市轨道交通列车运行智慧辅助系统','','北交大','{"defaultProject":0,"loginCreateSimulation":1, "createSimulationPermission":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('CGY','成都工业职业技术学院线网车站运营虚拟仿真实训中心','','成都工业','{"defaultProject":0,"loginCreateSimulation":0,"freeSource":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('WJLS','微机联锁仿真系统','','微机联锁','{"defaultProject":0,"loginCreateSimulation":1,"createLocalSimulation":1,"defaultMemberId":"2"}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('DRTS','全国行车调度员大赛训练系统','','调度大赛','{"defaultProject":0,"loginCreateSimulation":1,"mapNeedCharge":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('ZZWWTEST','共赢列车仿真驾驶系统','','郑州共赢考试','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR','中航锐创城市轨道交通实训平台','','中航锐创','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('ZZWW','共赢列车仿真驾驶系统','','郑州共赢','{"defaultProject":0,"loginCreateSimulation":0,"freeSource":1,"defaultLoadTrain":1}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('NOLOGO','城市轨道交通实训平台','','无logo','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_JOINT','中航锐创城市轨道交通实训平台','','中航锐创(实训室)','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('SR_SANDBOX','上饶科技中等专业学校城市轨道交通实训平台','','上饶沙盘','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('JXGM','江西工业贸易职业技术学院城市轨道交通实训平台','','江西工贸','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_YGY','扬州工业职业技术学院城市轨道交通实训平台','','扬州工业','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('SAY','江苏安全技术职业学院城市轨道交通实训平台','','苏安院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('UNITTEC_STY','轨道交通实训平台','','众合-陕铁院','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_HHCJ','红河财经学校城市轨道交通实训平台','','红河财经','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('RICHOR_CXJS','长兴技师学院城市轨道交通实训平台','','长兴技校','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('YJDDZH','应急调度指挥系统','','武汉8号线','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('TEACHING','教学通用实训平台','','教学通用','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project(`code`,`name`,`name_en`,`simple_name`,`server_setting`,`view_show` ,`create_time`,`update_time`,`status`) VALUES
('HYD_RAILWAY','大铁交通综合行车模拟仿真系统V1.0','','哈盈达大铁','{"defaultProject":0,"loginCreateSimulation":0}',1,NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('xty','XTY','{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通实训平台","loginPath":"/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"projectIcon":"@/assets/icon/favicon_xty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('zzww','ZZWW','{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzww","loginParam":"ZZWW","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_zzww.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('xzexam','SAY','{"loginInfo":{"title":"城市轨道交通标准化培训软件","loginPath":"/login?project=xzexam","loginParam":"SAY","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/transparent.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('zzwwtest','ZZWWTEST','{"loginInfo":{"title":"共赢列车仿真驾驶系统","loginPath":"/login?project=zzwwtest","loginParam":"ZZWWTEST","loginTitle":"空串","logoWidth":"140px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_zzww.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('bjd','BJD','{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","loginTitle":"空串","linkIcon":"@/assets/icon/link_bjd.png","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bjd.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=bjd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('sdy','SDY','{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通实训平台","loginPath":"/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"projectIcon":"@/assets/icon/favicon_jdy.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=sdy"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('ntyc','NTYC','{"loginInfo":{"title":"城轨高级信号系统(云平台专用版)","loginPath":"/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('ntyl','NTYL','{"loginInfo":{"title":"城轨高级信号系统(本地专用版)","loginPath":"/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=ntyl"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('nty','NTY','{"loginInfo":{"title":"城轨高级信号系统(云平台通用版)","loginPath":"/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('login','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","titleEn":" Urban Rail Transit Practical Training Platform","loginPath":"/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('design','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","titleEn":" Urban Rail Transit Design Platform","loginPath":"/design/login","loginParam":"DEFAULT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('wjls','WJLS','{"loginInfo":{"title":"微机联锁仿真系统","loginPath":"/login?project=wjls","loginParam":"WJLS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('drts','DRTS','{"loginInfo":{"title":"全国行车调度员大赛训练系统","loginPath":"/login?project=drts","loginParam":"DRTS","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"020"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designdrts','DRTS','{"loginInfo":{"title":"行车调度员设计平台国赛备战版","loginPath":"/design/login?project=drts","loginParam":"DRTS","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"020"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('yjddzh','YJDDZH','{"loginInfo":{"title":"应急调度指挥系统","loginPath":"/login?project=yjddzh","loginParam":"YJDDZH","loginTitle":"空串","navigationLogoWidth":"40px","navigationMarginLeft":"60px","logoWidth":"0","systemType":"011"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hlsdrts','DRTS','{"loginInfo":{"title":"城轨国赛竞赛系统","loginPath":"/login?project=hlsdrts","loginParam":"DRTS","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","loginTitle":"空串","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"020"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designbjd','BJD','{"loginInfo":{"title":"城市轨道交通列车运行智慧辅助系统","loginPath":"/design/login?project=bjd","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bjd.png","bottomColumn":"","linkIcon":"","loginParam":"BJD","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bjd.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=bjd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhlsdrts','DRTS','{"loginInfo":{"title":"城轨国赛竞赛系统","loginPath":"/design/login?project=hlsdrts","loginParam":"DRTS","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","loginTitle":"空串","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"020"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designxty','XTY','{"loginInfo":{"title":"西安铁路职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=xty","loginParam":"XTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"013"},"projectIcon":"@/assets/icon/favicon_xty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designntyl','NTYL','{"loginInfo":{"title":"城轨高级信号设计系统(本地专用版)","loginPath":"/design/login?project=ntyl","loginParam":"NTYL","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyl"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designntyc','NTYC','{"loginInfo":{"title":"城轨高级信号设计系统(云平台专用版)","loginPath":"/design/login?project=ntyc","loginParam":"NTYC","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=ntyc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designsdy','SDY','{"loginInfo":{"title":"江苏电子信息职业学院城市轨道交通设计平台","loginPath":"/design/login?project=sdy","loginParam":"SDY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"021"},"projectIcon":"@/assets/icon/favicon_jdy.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=sdy"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designnty','NTY','{"loginInfo":{"title":"城轨高级信号设计系统(云平台通用版)","loginPath":"/design/login?project=nty","loginParam":"NTY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_nty.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('gzb','GZB','{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通实训平台","loginPath":"/login?project=gzb","loginParam":"GZB","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"projectIcon":"@/assets/icon/favicon_gzb.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=gzb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designgzb','GZB','{"loginInfo":{"title":"贵州装备制造职业学院城市轨道交通设计平台","loginPath":"/design/login?project=gzb","titleDistance":"-150px","loginParam":"GZB","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"014"},"projectIcon":"@/assets/icon/favicon_gzb.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=gzb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designcgy','CGY','{"loginInfo":{"title":"成都工业职业技术学院轨道交通虚拟仿真设计平台","loginPath":"/design/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_cgy.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('heb','HEB','{"loginInfo":{"title":"城市轨道交通综合行车模拟仿真系统V1.0","loginTitle":"城市轨道交通综合行车模拟仿真系统V1.0","logoWidth":"140px","loginPath":"/login?project=heb","titleDistance":"150px","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":1,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=heb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通综合行车模拟仿真系统V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hyd","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"DEFAULT","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designheb','HEB','{"loginInfo":{"title":"城市轨道交通设计平台V1.0","loginTitle":"城市轨道交通设计平台V1.0","logoWidth":"140px","titleDistance":"150px","loginPath":"/design/login?project=heb","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HEB","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"019"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":1,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=heb"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/design/login?project=hyd","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"DEFAULT","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('cgy','CGY','{"loginInfo":{"title":"成都工业职业技术学院线网车站运营虚拟仿真实训中心","loginPath":"/login?project=cgy","loginParam":"CGY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_cgy.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":1,"noSimulationQrCode":0,"registerCode":1,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hydrailway','HYD_RAILWAY','{"loginInfo":{"title":"大铁交通综合行车模拟仿真系统V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hydrailway"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhydrailway','HYD_RAILWAY','{"loginInfo":{"title":"大铁交通设计平台V1.0","loginTitle":"空串","logoWidth":"140px","loginPath":"/login?project=hydrailway","bottomColumn":"哈尔滨盈达科技有限公司 联系电话:0451-87001273","loginParam":"HYD_RAILWAY","navigationLogoWidth":"120px","navigationMarginLeft":"140px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hydrailway"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('xadt','XADT','{"loginInfo":{"title":"城市轨道交通实训平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通实训平台","loginPath":"/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"projectIcon":"@/assets/icon/favicon_xas.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=xadt"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designxadt','XADT','{"loginInfo":{"title":"城市轨道交通设计平台","logoWidth":"60px","loginTitle":"运营一中心","homeTitle":"运营一中心","browserTitle":"西安地铁运营一中心城市轨道交通设计平台","loginPath":"/design/login?project=xadt","loginParam":"XADT","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"012"},"projectIcon":"@/assets/icon/favicon_xas.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=xadt"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('jyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=jyd","logoWidth":"300px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","loginTitle":"空串","bottomColumn":"","bottomIcon":"@/assets/icon/bottom_jyd.png","linkIcon":"@/assets/icon/link_jyd.png","loginParam":"DEFAULT","systemType":"011"},"projectIcon":"@/assets/icon/favicon_jyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=jyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designjyd','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginTitle":"空串","logoWidth":"300px","navigationLogoWidth":"120px","navigationMarginLeft":"140px","loginPath":"/design/login?project=jyd","bottomColumn":"","bottomIcon":"@/assets/icon/bottom_jyd.png","linkIcon":"@/assets/icon/link_jyd.png","loginParam":"DEFAULT","systemType":"011"},"projectIcon":"@/assets/icon/favicon_jyd.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=jyd"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('tky','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=tky","loginTitle":"空串","bottomColumn":"","bottomIcon":"@/assets/icon/favicon_tky.png","loginParam":"DEFAULT","navigationLogoWidth":"75px","navigationMarginLeft":"90px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_tky.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=tky"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designtky','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=tky","loginTitle":"空串","bottomIcon":"@/assets/icon/favicon_tky.png","bottomColumn":"","loginParam":"DEFAULT","navigationLogoWidth":"75px","navigationMarginLeft":"90px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_tky.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=tky"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('bxkc','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=bxkc","loginTitle":"空串","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bxkc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_bxkc.png","loginParam":"DEFAULT","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bxkc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=bxkc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designbxkc','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=bxkc","loginTitle":"空串","logoWidth":"400px","bottomIcon":"@/assets/icon/favicon_bxkc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_bxkc.png","loginParam":"DEFAULT","navigationLogoWidth":"160px","navigationMarginLeft":"175px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_bxkc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=bxkc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('crsc','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=crsc","loginTitle":"空串","logoWidth":"600px","bottomIcon":"@/assets/icon/favicon_crsc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_crsc.png","titleIcon":"@/assets/icon/link_crsc.png","loginParam":"DEFAULT","navigationLogoWidth":"100px","navigationMarginLeft":"125px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_crsc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=crsc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designcrsc','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=crsc","loginTitle":"空串","logoWidth":"600px","bottomIcon":"@/assets/icon/favicon_crsc.png","bottomColumn":"","linkIcon":"@/assets/icon/link_crsc.png","titleIcon":"@/assets/icon/link_crsc.png","loginParam":"DEFAULT","navigationLogoWidth":"100px","navigationMarginLeft":"125px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_crsc.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=crsc"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richor','RICHOR','{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richor","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorlesson3d','RICHOR','{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorlesson3d","loginParam":"RICHOR","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"022"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('hls','DEFAULT','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=hls","loginTitle":"空串","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","bottomColumn":"北京和利时系统工程有限公司","loginParam":"DEFAULT","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=hls"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorjoint','RICHOR_JOINT','{"loginInfo":{"title":"中航锐创城市轨道交通设计平台","loginPath":"/design/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=richorjoint"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorjoint','RICHOR_JOINT','{"loginInfo":{"title":"中航锐创城市轨道交通实训平台","loginPath":"/login?project=richorjoint","loginParam":"RICHOR_JOINT","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","navigationLogoWidth":"40px","navigationMarginLeft":"50px","systemType":"023"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"cctvUrl":"http://192.168.1.254","otherPlatformUrl":"/design/login?project=richorjoint"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designhls','DEFAULT','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=hls","loginTitle":"空串","logoWidth":"300px","linkIcon":"@/assets/icon/link_hls.png","bottomColumn":"北京和利时系统工程有限公司","loginParam":"DEFAULT","navigationLogoWidth":"180px","navigationMarginLeft":"195px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_hls.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":0,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=hls"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designsrsandbox','SR_SANDBOX','{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通设计平台","loginPath":"/design/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=srsandbox"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorygy','RICHOR_YGY','{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('srsandbox','SR_SANDBOX','{"loginInfo":{"title":"上饶科技中等专业学校城市轨道交通实训平台","loginPath":"/login?project=srsandbox","loginParam":"SR_SANDBOX","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=srsandbox"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorygy','RICHOR_YGY','{"loginInfo":{"title":"扬州工业职业技术学院城市轨道交通实训平台","loginPath":"/login?project=richorygy","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_YGY","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorhhcj','RICHOR_HHCJ','{"loginInfo":{"title":"红河财经学校城市轨道交通实训平台","loginPath":"/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"cctvUrl":"http://192.168.0.254","otherPlatformUrl":"/design/login?project=richorhhcj"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorhhcj','RICHOR_HHCJ','{"loginInfo":{"title":"红河财经学校城市轨道交通设计平台","loginPath":"/design/login?project=richorhhcj","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_HHCJ","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":1,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1,"otherPlatformUrl":"/login?project=richorhhcj"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designrichorcxjs','RICHOR_CXJS','{"loginInfo":{"title":"长兴技师学院城市轨道交通设计平台","loginPath":"/design/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designjxgm','JXGM','{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通设计平台","loginPath":"/design/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"025"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=jxgm"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('richorcxjs','RICHOR_CXJS','{"loginInfo":{"title":"长兴技师学院城市轨道交通实训平台","loginPath":"/login?project=richorcxjs","bottomColumn":"中航锐创(北京)科技发展有限公司 联系电话:4000500081","loginParam":"RICHOR_CXJS","linkIcon":"@/assets/icon/favicon_richor.png","titleIcon":"@/assets/icon/favicon_richor.png","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"027"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":1,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":1,"contectInfo":{},"noCopyRight":1}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designnologo','NOLOGO','{"loginInfo":{"title":"城市轨道交通设计平台","loginPath":"/design/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"projectIcon":"@/assets/icon/transparent.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=nologo"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('jxgm','JXGM','{"loginInfo":{"title":"江西工业贸易职业技术学院城市轨道交通实训平台","loginPath":"/login?project=jxgm","loginParam":"JXGM","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"024"},"projectIcon":"@/assets/icon/favicon_richor.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=jxgm"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('nologo','NOLOGO','{"loginInfo":{"title":"城市轨道交通实训平台","loginPath":"/login?project=nologo","loginParam":"NOLOGO","bottomColumn":"","navigationLogoWidth":"10px","navigationMarginLeft":"10px","systemType":"011"},"projectIcon":"@/assets/icon/transparent.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":1,"mainBodyNoShow":1,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=nologo"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('say','SAY','{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通实训平台","loginPath":"/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"projectIcon":"@/assets/icon/favicon_say.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=say"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designsay','SAY','{"loginInfo":{"title":"江苏安全技术职业学院城市轨道交通设计平台","loginPath":"/design/login?project=say","loginParam":"SAY","titleDistance":"-150px","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"026"},"projectIcon":"@/assets/icon/favicon_say.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=say"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('unittecsty','UNITTEC_STY','{"loginInfo":{"title":"轨道交通实训平台","loginPath":"/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_unittec.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=unittecsty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designunittecsty','UNITTEC_STY','{"loginInfo":{"title":"轨道交通设计平台","loginPath":"/design/login?project=unittecsty","loginParam":"UNITTEC_STY","titleDistance":"-150px","titleIcon":"@/assets/icon/link_unittec.png","linkIcon":"@/assets/icon/link_unittec.png","titleImgWidth":"250px","navigationLogoWidth":"60px","navigationMarginLeft":"80px","systemType":"011"},"projectIcon":"@/assets/icon/favicon_unittec.png","thirdLogin":0,"bottomColumnOnlyCon":1,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":1,"projectLoginStyle":1,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=unittecsty"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('teaching','TEACHING','{"loginInfo":{"title":"教学通用实训平台","loginPath":"/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/design/login?project=teaching"}',NOW(),NOW(),1);
insert into project_view(`mark_key`,`project`,`view_setting`,`create_time`,`update_time`,`status`) VALUES ('designteaching','TEACHING','{"loginInfo":{"title":"教学通用设计平台","loginPath":"/design/login?project=teaching","loginParam":"TEACHING","navigationLogoWidth":"40px","navigationMarginLeft":"60px","systemType":"028"},"projectIcon":"@/assets/icon/favicon.png","thirdLogin":0,"bottomColumnOnlyCon":0,"mapList":1,"caseHide":0,"versionBaseNoShow":0,"mainBodyNoShow":0,"projectLoginStyle":0,"noQrcode":0,"noSimulationQrCode":0,"registerCode":0,"contectUs":0,"contectInfo":{},"noCopyRight":0,"otherPlatformUrl":"/login?project=teaching"}',NOW(),NOW(),1);

View File

@ -1,4 +0,0 @@
alter table `joylink`.`project`
drop COLUMN `name_en`,
CHANGE COLUMN `simple_name` `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL comment '项目简称' AFTER `code`,
CHANGE COLUMN `name` `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL comment '项目描述' AFTER `name`;

View File

@ -1,11 +0,0 @@
create TABLE `org_project` (
`id` int NOT NULL AUTO_INCREMENT comment '主键',
`org_id` int NOT NULL comment '组织ID',
`project_code` varchar(255) NOT NULL comment '项目编码',
`creator_id` int DEFAULT NULL comment '创建者',
`create_time` datetime DEFAULT NULL comment '创建时间',
PRIMARY KEY (`id`),
UNIQUE KEY `org_id_2` (`org_id`,`project_code`),
KEY `org_id` (`org_id`),
KEY `project_code` (`project_code`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -1,12 +0,0 @@
create TABLE `minio_file_info` (
`id` bigint NOT NULL AUTO_INCREMENT comment '主键',
`title` varchar(255) DEFAULT NULL comment '文件展示名称',
`directory` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '文件夹',
`file_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL comment '存放文件名',
`create_time` datetime DEFAULT NULL comment '创建时间',
`creator` bigint DEFAULT NULL comment '创建者',
`status` int DEFAULT NULL comment '状态',
PRIMARY KEY (`id`),
KEY `type` (`directory`),
KEY `status` (`status`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -1,3 +0,0 @@
-- 新实训标添加组织id
alter table rts_published_training2 add column org_id bigint;

View File

@ -1,89 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 12/10/2022 17:49:36
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_paper_composition
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_composition`;
CREATE TABLE `rts_paper_composition` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '试卷蓝图id',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '试卷蓝图名称',
`profile` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '试卷蓝图简介',
`map_id` bigint NOT NULL COMMENT '对应的mapId',
`org_id` bigint DEFAULT NULL COMMENT '组织id',
`start_time` datetime DEFAULT NULL COMMENT '启用起始时间',
`end_time` datetime DEFAULT NULL COMMENT '启用截止时间',
`valid_duration` int DEFAULT NULL COMMENT '完成考试有效最长时长单位min',
`pass_score` int DEFAULT NULL COMMENT '及格分',
`full_score` int DEFAULT NULL COMMENT '满分',
`update_id` bigint DEFAULT NULL COMMENT '最后更新用户id',
`creator_id` bigint DEFAULT NULL COMMENT '创建者id',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`state` int DEFAULT NULL COMMENT '试卷蓝图状态1-正在编辑2-封存(不能修改)3-已经被使用(不能修改删除)定于见PaperCompositionState',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_paper_rule
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_rule`;
CREATE TABLE `rts_paper_rule` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '试卷规则定义id',
`pc_id` bigint NULL DEFAULT NULL COMMENT 'paper_compostion的id',
`type` int NULL DEFAULT NULL COMMENT '试题类型1-理论题2-实训题',
`subType` int NULL DEFAULT NULL COMMENT '规则类型:理论题(1-单选题2-多选题3-判断题);实训题(4-单操实训5-场景实训)',
`tags` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '筛选题目的标签,即根据标签来筛选题目;List<String>的json',
`amount` int NULL DEFAULT NULL COMMENT '该类型题目数量',
`score` int NULL DEFAULT NULL COMMENT '每题分值',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 12 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_paper_user
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_user`;
CREATE TABLE `rts_paper_user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户试卷id',
`user_id` bigint NOT NULL COMMENT '用户id',
`pc_id` bigint NOT NULL COMMENT '生成用户试卷的paper_compostion的id',
`score` int NULL DEFAULT NULL COMMENT '用户最终得分',
`start_time` datetime NULL DEFAULT NULL COMMENT '用户开始做题时间',
`end_time` datetime NULL DEFAULT NULL COMMENT '用户结束做题时间',
`cause` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '原因',
`create_time` datetime NULL DEFAULT NULL COMMENT '用户试卷生成时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_paper_user_question
-- ----------------------------
DROP TABLE IF EXISTS `rts_paper_user_question`;
CREATE TABLE `rts_paper_user_question` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '用户试卷试题结果id',
`pu_id` bigint NOT NULL COMMENT '用户试卷paper_user的id',
`org_id` bigint DEFAULT NULL COMMENT '组织id',
`type` int DEFAULT NULL COMMENT '试题类型1-理论题2-实训题',
`question_id` bigint NOT NULL COMMENT '试题id',
`state` int DEFAULT NULL COMMENT '试题状态1-未做(初始)2-答对3-答错4-时间到结束',
`tmp_answer` varchar(255) DEFAULT NULL COMMENT '临时答案内容',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=373 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,2 +0,0 @@
alter table `joylink`.`project`
ADD COLUMN `default_org` bigint NULL comment '默认组织ID' AFTER `server_setting`;

View File

@ -1,2 +0,0 @@
alter table `joylink`.`project_view`
drop index `mark_key`;

View File

@ -1,10 +0,0 @@
-- 实训草稿
rename TABLE draft_training2 to rts_draft_training2;
rename TABLE published_training2 to rts_published_training2;
-- 机构与项目关系
rename TABLE org_project to rts_org_project;
-- 项目
rename TABLE project to rts_project;
rename TABLE project_view to rts_project_view;
-- MINIO
rename TABLE minio_file_info to rts_minio_file_info;

View File

@ -1,8 +0,0 @@
alter table `joylink`.`rts_draft_training2`
ADD COLUMN `map_system` varchar(255) NULL comment '子系统' AFTER `map_id`,
ADD COLUMN `terminal` varchar(255) NULL comment '客户端标识' AFTER `map_system`;
alter table `joylink`.`rts_published_training2`
ADD COLUMN `map_system` varchar(255) NULL comment '子系统' AFTER `map_id`,
ADD COLUMN `terminal` varchar(255) NULL comment '客户端标识' AFTER `map_system`;

View File

@ -1 +0,0 @@
rename TABLE trace_training2 to rts_trace_training2;

View File

@ -1,92 +0,0 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_permission
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission`;
CREATE TABLE `rts_permission` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限id,对功能(system_ability)的管理',
`project_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '对应的projectCode',
`map_id` bigint NULL DEFAULT NULL COMMENT '对应线路的mapId',
`permission_type` int NULL DEFAULT NULL COMMENT '权限类型 0=项目1=线路2=线路功能',
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '权限名称',
`des` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '权限描述',
`creator_id` bigint NULL DEFAULT NULL COMMENT '创建者id',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2159 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_distribute
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_distribute`;
CREATE TABLE `rts_permission_distribute` (
`id` bigint NOT NULL AUTO_INCREMENT,
`map_id` bigint NULL DEFAULT NULL COMMENT '地图id',
`source_subject_id` bigint NULL DEFAULT NULL COMMENT '来源主体id',
`forever` tinyint(1) NULL DEFAULT NULL COMMENT '是否永久true/false',
`status` int NULL DEFAULT NULL COMMENT '权限分发状态,1-有效2-无效',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '修改时间',
`start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
`end_time` datetime NULL DEFAULT NULL COMMENT '结束时间',
`creator_id` bigint NULL DEFAULT NULL COMMENT '创建者id',
`dsc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '备注描述',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_distribute_ref
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_distribute_ref`;
CREATE TABLE `rts_permission_distribute_ref` (
`id` bigint NOT NULL AUTO_INCREMENT,
`distribute_id` bigint NULL DEFAULT NULL COMMENT '分发id',
`permission_id` bigint NULL DEFAULT NULL COMMENT '权限id',
`amount` int NULL DEFAULT NULL COMMENT '总数量',
`remains` int NULL DEFAULT NULL COMMENT '剩余数量',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 8615 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_subject
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_subject`;
CREATE TABLE `rts_permission_subject` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限主体id',
`permission_id` bigint NULL DEFAULT NULL COMMENT '访问权限id',
`subject_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '主体类型(user,org)',
`subject_id` bigint NULL DEFAULT NULL COMMENT '主体id',
`amount` int NULL DEFAULT NULL COMMENT '主体对该权限的总数量',
`remains` int NULL DEFAULT NULL COMMENT '主体对该权限的剩余数量',
`status` int NULL DEFAULT NULL COMMENT '权限主体状态,1Valid-有效2InValid-无效',
`forever` tinyint(1) NULL DEFAULT NULL COMMENT '是否永久1-true/0-false',
`start_time` datetime NULL DEFAULT NULL COMMENT '开始时间',
`end_time` datetime NULL DEFAULT NULL COMMENT '结束时间',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`distribute_id` bigint NOT NULL COMMENT '来自对应的分发id(rts_permission_distribute)',
`parent_id` bigint NULL DEFAULT NULL COMMENT '父级id 数据来源rts_permission_distribute表source_subject_id字段',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 60903 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Table structure for rts_permission_system_ability
-- ----------------------------
DROP TABLE IF EXISTS `rts_permission_system_ability`;
CREATE TABLE `rts_permission_system_ability` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限功能关联记录id',
`permission_id` bigint NULL DEFAULT NULL COMMENT '权限id',
`system_ability_id` bigint NULL DEFAULT NULL COMMENT '功能(system_ability)的id',
`is_sync` tinyint(1) NULL DEFAULT NULL COMMENT '是否同步的数据',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 58719 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,38 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : test-local
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 31/10/2022 13:14:51
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_map_function
-- ----------------------------
DROP TABLE IF EXISTS `rts_map_function`;
CREATE TABLE `rts_map_function` (
`id` bigint NOT NULL AUTO_INCREMENT,
`map_id` bigint NOT NULL COMMENT '地图id',
`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '名称',
`desc` varchar(256) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '描述',
`type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '仿真类型',
`param` text CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '仿真创建参数',
`creator_id` bigint NOT NULL COMMENT '创建人id',
`create_time` datetime NOT NULL COMMENT '创建时间',
`updater_id` bigint NULL DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 159 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '地图功能' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,12 +0,0 @@
CREATE TABLE `rts_draft_training2_progress` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键',
`training_id` bigint DEFAULT NULL COMMENT '实训ID',
`description` text COMMENT '描述',
`create_time` datetime DEFAULT NULL,
`map_location_json` text COMMENT '地图定位',
`bg_scene_json` text COMMENT '背景JSON',
`step_json` text COMMENT '步骤列表json',
`scoring_rule_json` text COMMENT '打分规则列表json',
`creator_id` bigint DEFAULT NULL COMMENT '创建人',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='实训草稿存档表';

View File

@ -1,6 +0,0 @@
ALTER TABLE `joylink`.`rts_draft_training2`
ADD COLUMN `client` varchar(255) NULL COMMENT '客户端' AFTER `update_time`;
ALTER TABLE `joylink`.`rts_published_training2`
ADD COLUMN `client` varchar(255) NULL COMMENT '客户端' AFTER `org_id`;

View File

@ -1,3 +0,0 @@
ALTER TABLE `joylink`.`rts_project`
ADD COLUMN `map_id` int NULL COMMENT '地图ID' AFTER `default_org`,
ADD COLUMN `function_id` int NULL COMMENT '功能ID' AFTER `map_id`;

View File

@ -1,35 +0,0 @@
/*
Navicat Premium Data Transfer
Source Server : room
Source Server Type : MySQL
Source Server Version : 80029
Source Host : 192.168.3.233:3306
Source Schema : joylink
Target Server Type : MySQL
Target Server Version : 80029
File Encoding : 65001
Date: 06/12/2022 09:53:18
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for rts_iscs_model_data
-- ----------------------------
DROP TABLE IF EXISTS `rts_iscs_model_data`;
CREATE TABLE `rts_iscs_model_data` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'iscs数据模型id',
`system` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'iscs一级系统(如FAS、PIS、AFC等)',
`view` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT 'iscs二级视图',
`place` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '场所(车站、变电所、停车场等)',
`data` blob NULL COMMENT '场所整个所有的模型的数据',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@ -1,19 +0,0 @@
CREATE TABLE `rts_training2_rule` (
`id` bigint NOT NULL AUTO_INCREMENT,
`sim_type` varchar(255) DEFAULT NULL COMMENT '仿真类型',
`line_code` varchar(255) DEFAULT NULL COMMENT '线路编码',
`device_rule` varchar(255) DEFAULT NULL COMMENT '设备列表规则',
`client` varchar(255) DEFAULT NULL COMMENT '客户端',
`name` varchar(255) DEFAULT NULL COMMENT '实训名称格式',
`description` varchar(255) DEFAULT NULL COMMENT '实训描述',
`type` varchar(255) DEFAULT NULL COMMENT '实训类型',
`labels` varchar(255) DEFAULT NULL COMMENT '实训标签',
`scene_rule` varchar(255) DEFAULT NULL COMMENT '背景生成规则',
`steps` text COMMENT '步骤列表',
`failure_rule` text COMMENT '失败规则',
`creator_id` bigint DEFAULT NULL COMMENT '创建者ID',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`location_rule` varchar(255) DEFAULT NULL COMMENT '地图定位规则',
PRIMARY KEY (`id`),
KEY `sim_type` (`sim_type`)
) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

View File

@ -1,16 +0,0 @@
-- 用户答题生成对应的规则id
ALTER TABLE `rts_paper_user_question`
ADD COLUMN `rule_id` bigint not NULL COMMENT '试卷规则rts_paper_rule的id' AFTER `pu_id`;
ALTER TABLE `rts_paper_user_question`
ADD COLUMN `sub_type` int not NULL COMMENT '规则类型:理论题(1-单选题2-多选题3-判断题);实训题(4-单操实训5-场景实训)' AFTER `type`;
ALTER TABLE `rts_paper_user_question` MODIFY COLUMN tmp_answer longtext;
ALTER TABLE `rts_paper_rule` ADD COLUMN scene_detail VARCHAR(1000) COMMENT '场景实训考试的规则';
ALTER TABLE `rts_paper_user_question`
ADD COLUMN `scene_cosplay_id` varchar(10) COMMENT '场景实训考试扮演的角色';

View File

@ -1,2 +0,0 @@
ALTER TABLE `joylink`.`rts_map_function`
ADD COLUMN `bg_url` varchar(255) NULL COMMENT '背景图片的url' AFTER `desc`;

View File

@ -0,0 +1,41 @@
package club.joylink.rtss.aop;
import club.joylink.rtss.services.cgy.CgyStatsService;
import club.joylink.rtss.simulation.cbtc.SimulationService;
import club.joylink.rtss.vo.client.cgy.CgyThirdPartyLoginInfoVO;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
@Aspect
@Slf4j
@Component
public class CgyViewAspect {
private CgyStatsService cgyStatsService;
private RestTemplate restTemplate;
private SimulationService simulationService;
@Autowired
public CgyViewAspect(CgyStatsService cgyStatsService, RestTemplate restTemplate,
SimulationService simulationService) {
this.cgyStatsService = cgyStatsService;
this.restTemplate = restTemplate;
this.simulationService = simulationService;
}
/**
* 成工院第三方登录接口被调用后加一个浏览量并同步给虚仿平台
*/
@AfterReturning(value = "execution(public * club.joylink.rtss.controller.LoginController.cgyThirdPartyLogin(..))")
public void addViewCount(JoinPoint joinPoint) {
Object arg = joinPoint.getArgs()[0];
CgyThirdPartyLoginInfoVO loginInfoVO = (CgyThirdPartyLoginInfoVO) arg;
cgyStatsService.updateView(loginInfoVO.getAppId());
}
}

View File

@ -0,0 +1,32 @@
package club.joylink.rtss.bo.cgy;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicLong;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
/**
* 成工院虚仿平台对接统计数据
*/
@Getter
@Setter
@RequiredArgsConstructor
public class CgyStatsBO {
private final String appId;
private final String appSecret;
private final Long FunctionId;
//统计数据是否发生变化
private AtomicBoolean change;
//浏览量
private AtomicLong view;
//实训人次
private AtomicLong visitor;
//实训人数
private final Set<Long> userSet = new HashSet<>();
//实训时长/s
private AtomicLong duration;
}

View File

@ -0,0 +1,101 @@
package club.joylink.rtss.bo.race;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.vo.race.RaceApplication;
import club.joylink.rtss.vo.race.RaceApplication.ResultNode;
import club.joylink.rtss.vo.race.RaceApplication.ResultNode.Builder;
import club.joylink.rtss.vo.race.RaceTask;
import club.joylink.rtss.vo.race.RaceTask.RacePaperSingleModuleGroupTask;
import club.joylink.rtss.vo.race.RaceTask.RaceTaskChildVO;
import club.joylink.rtss.vo.race.RaceTask.RaceTaskChildVO.ChildNodeType;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Data;
@Data
public class RaceContent {
private long userId;
private long paperId;
private int moduleId;
/**
* 训练使用到的任务树
*/
private RaceTask.RacePaperSingleModuleGroupTask taskTree;
/**
* 训练结果
*/
private RaceApplication.RacePracticeResult.Builder result;
/**
* 结果节点映射仅为了通过ID找节点
*/
private Map<Long, Builder> resultNodeMap = new HashMap<>();
public RaceContent(long userId, long paperId, int moduleId,
RacePaperSingleModuleGroupTask taskTree) {
this.userId = userId;
this.paperId = paperId;
this.moduleId = moduleId;
this.taskTree = taskTree;
this.result = RaceApplication.RacePracticeResult.newBuilder();
result.setCustomModuleId(taskTree.getCustomModuleId());
Builder rootNode = ResultNode.newBuilder();
buildResultNodeTree(taskTree.getChildList(), rootNode);
result.addAllNode(rootNode.getChildList());
// for (RaceTaskChildVO childVO : taskTree.getChildList()) {
// Builder nodeBuilder = result.addNodeBuilder();
// nodeBuilder.setName(childVO.getName());
// nodeBuilder.setType(childVO.getNodeType());
// nodeBuilder.setSceneId(childVO.getSceneId());
// //构建任务映射
// if (ChildNodeType.TASK == childVO.getNodeType()) {
// resultNodeMap.put(childVO.getId(), nodeBuilder);
// }
// //递归
// buildResultNodeTree(childVO, nodeBuilder);
// }
}
public Builder getResultNode(long taskId) {
Builder builder = resultNodeMap.get(taskId);
BusinessExceptionAssertEnum.DATA_NOT_EXIST.assertNotNull(builder,
String.format("任务[%d]不存在", taskId));
return builder;
}
private void buildResultNodeTree(List<RaceTaskChildVO> children, Builder parentNode) {
for (RaceTaskChildVO childVO : children) {
//构建对应的结果Node
Builder nodeBuilder = parentNode.addChildBuilder();
nodeBuilder.setName(childVO.getName());
nodeBuilder.setType(childVO.getNodeType());
nodeBuilder.setSceneId(childVO.getSceneId());
//构建任务映射
if (ChildNodeType.TASK == childVO.getNodeType()) {
resultNodeMap.put(childVO.getId(), nodeBuilder);
}
//递归
buildResultNodeTree(childVO.getChildrenList(), nodeBuilder);
}
}
// private void buildResultNodeTree(RaceTaskChildVO children, Builder parentNode) {
// for (RaceTaskChildVO childVO : children.getChildrenList()) {
// //构建对应的结果Node
// Builder nodeBuilder = parentNode.addChildBuilder();
// nodeBuilder.setName(childVO.getName());
// nodeBuilder.setType(childVO.getNodeType());
// nodeBuilder.setSceneId(childVO.getSceneId());
// //构建任务映射
// if (ChildNodeType.TASK == childVO.getNodeType()) {
// resultNodeMap.put(childVO.getId(), nodeBuilder);
// }
// //递归
// buildResultNodeTree(childVO, nodeBuilder);
// }
// }
}

View File

@ -6,6 +6,7 @@ import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
import com.hubspot.jackson.datatype.protobuf.ProtobufModule;
import org.springframework.boot.autoconfigure.jackson.Jackson2ObjectMapperBuilderCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@ -17,36 +18,40 @@ import java.time.format.DateTimeFormatter;
@Configuration
public class LocalDateTimeSerializerConfig {
/**
* Date格式化字符串
*/
private static final String DATE_FORMAT = "yyyy-MM-dd";
/**
* DateTime格式化字符串
*/
private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* Time格式化字符串
*/
private static final String TIME_FORMAT = "HH:mm:ss";
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return builder -> {
builder.serializerByType(LocalDateTime.class,
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATETIME_FORMAT)));
builder.deserializerByType(LocalDateTime.class,
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATETIME_FORMAT)));
/**
* Date格式化字符串
*/
private static final String DATE_FORMAT = "yyyy-MM-dd";
/**
* DateTime格式化字符串
*/
private static final String DATETIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
/**
* Time格式化字符串
*/
private static final String TIME_FORMAT = "HH:mm:ss";
builder.serializerByType(LocalDate.class,
new LocalDateSerializer(DateTimeFormatter.ofPattern(DATE_FORMAT)));
builder.deserializerByType(LocalDate.class,
new LocalDateDeserializer(DateTimeFormatter.ofPattern(DATE_FORMAT)));
@Bean
public Jackson2ObjectMapperBuilderCustomizer jackson2ObjectMapperBuilderCustomizer() {
return builder -> {
builder.modulesToInstall(ProtobufModule.class);
builder.failOnUnknownProperties(false);
builder.serializerByType(LocalDateTime.class,
new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DATETIME_FORMAT)));
builder.deserializerByType(LocalDateTime.class,
new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DATETIME_FORMAT)));
builder.serializerByType(LocalTime.class,
new LocalTimeSerializer(DateTimeFormatter.ofPattern(TIME_FORMAT)));
builder.deserializerByType(LocalTime.class,
new LocalTimeDeserializer(DateTimeFormatter.ofPattern(TIME_FORMAT)));
};
}
builder.serializerByType(LocalDate.class,
new LocalDateSerializer(DateTimeFormatter.ofPattern(DATE_FORMAT)));
builder.deserializerByType(LocalDate.class,
new LocalDateDeserializer(DateTimeFormatter.ofPattern(DATE_FORMAT)));
builder.serializerByType(LocalTime.class,
new LocalTimeSerializer(DateTimeFormatter.ofPattern(TIME_FORMAT)));
builder.deserializerByType(LocalTime.class,
new LocalTimeDeserializer(DateTimeFormatter.ofPattern(TIME_FORMAT)));
};
}
}

View File

@ -75,4 +75,19 @@ public class TaskExecutorConfiguration {
taskExecutor.initialize();
return taskExecutor;
}
/**
* 语音识别业务处理线程
*/
@Bean("voiceDiscriminateExecutor")
public TaskExecutor voiceDiscriminateExecutor(Environment env) {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setThreadNamePrefix("ns-voice-discriminate-executor-");
taskExecutor.setCorePoolSize(2);
taskExecutor.setMaxPoolSize(2);
taskExecutor.setQueueCapacity(100);
taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
taskExecutor.initialize();
return taskExecutor;
}
}

View File

@ -14,68 +14,72 @@ import java.util.List;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private AuthenticateInterceptor authenticateInterceptor;
@Autowired
private AuthenticateInterceptor authenticateInterceptor;
@Autowired
private LicenseInterceptor licenseInterceptor;
@Autowired
private LicenseInterceptor licenseInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry) {
List<String> licenseWhiteList = new ArrayList<>();
licenseWhiteList.add("/api/license/validate");
licenseWhiteList.add("/api/license/local");
licenseWhiteList.add("/api/licensing/**");
registry.addInterceptor(licenseInterceptor).excludePathPatterns(licenseWhiteList);
List<String> whiteList = new ArrayList<>();
whiteList.add("/doc/**");
whiteList.add("/api/login/**");
whiteList.add("/api/wxpat/**");
whiteList.add("/api/sms/**");
whiteList.add("/api/register/**");
whiteList.add("/api/userinfo/**");
whiteList.add("/api/wechatpay/receive");
whiteList.add("/api/alipay/receive");
whiteList.add("/api/applet/**");
whiteList.add("/api/wxauth/**");
whiteList.add("/api/distribute/permission");
whiteList.add("/api/v1/jointTraining/permission");
whiteList.add("/api/jointTraining/permission");
whiteList.add("/api/user/bind/wm");
// 运行图工具
whiteList.add("/api/rpTools/**");
whiteList.add("/api/license/validate");
whiteList.add("/api/license/local");
// 微信回调接口
whiteList.add("/api/wechatPay/receive");
// 成都工业留言板
whiteList.add("/api/learn/cgy/message/create");
whiteList.add("/api/learn/cgy/{messageId}/comment");
whiteList.add("/api/learn/{postId}/message/pagedQuery/postId");
whiteList.add("GET /api/learn/{messageId}/comment");
whiteList.add("/api/learn/cgy/updateMessageTime");
// 成都工业使用记录
whiteList.add("/api/cgy/**");
//项目域名查询
whiteList.add("/api/projectServer/project/{project}");
whiteList.add("/test/simulation/**");
whiteList.add("/api/test/**");
whiteList.add("/api/project/viewSetting/simple/all");
whiteList.add("/api/project/viewSetting/project/{project}");
//旧数据处理
whiteList.add("/api/org/oldData/handle");
whiteList.add("/api/mapFunction/oldDataHandle");
whiteList.add("/api/v2/paper/composition/oldData/handle");
whiteList.add("/api/user/sync");
whiteList.add("/dataHandle");
@Override
public void addInterceptors(InterceptorRegistry registry) {
List<String> licenseWhiteList = new ArrayList<>();
licenseWhiteList.add("/api/license/validate");
licenseWhiteList.add("/api/license/local");
licenseWhiteList.add("/api/licensing/**");
licenseWhiteList.add("/api/project/viewSetting/simple/all");
licenseWhiteList.add("/api/project/viewSetting/project/{project}");
registry.addInterceptor(licenseInterceptor).excludePathPatterns(licenseWhiteList);
List<String> whiteList = new ArrayList<>();
whiteList.add("/doc/**");
whiteList.add("/api/login/**");
whiteList.add("/api/wxpat/**");
whiteList.add("/api/sms/**");
whiteList.add("/api/register/**");
whiteList.add("/api/userinfo/**");
whiteList.add("/api/wechatpay/receive");
whiteList.add("/api/alipay/receive");
whiteList.add("/api/applet/**");
whiteList.add("/api/wxauth/**");
whiteList.add("/api/distribute/permission");
whiteList.add("/api/v1/jointTraining/permission");
whiteList.add("/api/jointTraining/permission");
whiteList.add("/api/user/bind/wm");
// 运行图工具
whiteList.add("/api/rpTools/**");
whiteList.add("/api/license/validate");
whiteList.add("/api/license/local");
// 微信回调接口
whiteList.add("/api/wechatPay/receive");
// 成都工业留言板
whiteList.add("/api/learn/cgy/message/create");
whiteList.add("/api/learn/cgy/{messageId}/comment");
whiteList.add("/api/learn/{postId}/message/pagedQuery/postId");
whiteList.add("GET /api/learn/{messageId}/comment");
whiteList.add("/api/learn/cgy/updateMessageTime");
// 成都工业使用记录
whiteList.add("/api/cgy/**");
//项目域名查询
whiteList.add("/api/projectServer/project/{project}");
whiteList.add("/test/simulation/**");
whiteList.add("/api/test/**");
whiteList.add("/api/project/viewSetting/simple/all");
whiteList.add("/api/project/viewSetting/project/{project}");
//旧数据处理
whiteList.add("/api/org/oldData/handle");
whiteList.add("/api/mapFunction/oldDataHandle");
whiteList.add("/api/v2/paper/composition/oldData/handle");
whiteList.add("/api/user/sync");
whiteList.add("/dataHandle");
//modbus测试
whiteList.add("/api/test/modbus/writeCoil");
registry.addInterceptor(authenticateInterceptor).excludePathPatterns(whiteList);
}
registry.addInterceptor(authenticateInterceptor).excludePathPatterns(whiteList);
}
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new LocalDateConverter());
WebMvcConfigurer.super.addFormatters(registry);
}
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new LocalDateConverter());
WebMvcConfigurer.super.addFormatters(registry);
}
}

View File

@ -11,4 +11,5 @@ import org.springframework.stereotype.Component;
@Setter
public class ModbusTcpConfig {
private int port;
private int afcTransferPort;
}

View File

@ -8,11 +8,13 @@ public interface BusinessConsts {
* 状态 1-启用/有效
*/
String STATUS_USE = "1";
int STATUS_USE_INT = 1;
/**
* 状态 0-禁用/无效
*/
String STATUS_NOT_USE = "0";
int STATUS_NOT_USE_INT = 0;
/**
* 验证码有效期: 单位 分钟

View File

@ -0,0 +1,11 @@
package club.joylink.rtss.constants;
public interface ProjectCode {
String THAILAND_SANDBOX = "THAILAND_SANDBOX";
String SR_SANDBOX = "SR_SANDBOX";
String NGY_SAND_TABLE = "NGY_SAND_TABLE";
String CDGXY = "CDGXY";
String CGY = "CGY";
}

View File

@ -1,9 +1,8 @@
package club.joylink.rtss.constants;
import lombok.Getter;
import java.util.Arrays;
import java.util.List;
import lombok.Getter;
/**
* 项目设备类型
@ -11,80 +10,139 @@ import java.util.List;
@Getter
public enum ProjectDeviceType {
/* -----------plc device start---------- */
/** 区段 */
SECTION,
/** 道岔 */
SWITCH,
/** 信号机 */
SIGNAL,
/** 屏蔽门控制柜 */
PSC,
/** 屏蔽门 */
PSD,
/** 端头控制盒(屏蔽门控制盒) */
PSL,
/** IBP盘 */
IBP,
/** PLC网关 */
PLC_GATEWAY,
/** 单元控制器 */
DCU,
/** UDP下位机 */
UDP_LOW,
/** UDP客户端 */
UDP_CLIENT,
/** 列车 */
TRAIN,
/* -----------plc device end---------- */
/* -----------plc device start---------- */
/**
* 区段
*/
SECTION,
/**
* 道岔
*/
SWITCH,
/**
* 信号机
*/
SIGNAL,
/**
* 屏蔽门控制柜
*/
PSC,
/**
* 屏蔽门
*/
PSD,
/**
* 端头控制盒屏蔽门控制盒
*/
PSL,
/**
* IBP盘
*/
IBP,
/**
* PLC网关
*/
PLC_GATEWAY,
/**
* 单元控制器
*/
DCU,
/**
* UDP下位机
*/
UDP_LOW,
/**
* UDP客户端
*/
UDP_CLIENT,
/**
* 列车
*/
TRAIN,
/* -----------plc device end---------- */
/* -----------client device start---------- */
/** 教员机instructor machine */
IM,
/** 调度工作站control workstation */
CW,
/** 现地工作站local workstation */
LW,
/** 联锁工作站interlock workstation */
ILW,
/** 虚拟综合后备盘(Integrated Back-Up Panel) */
VR_IBP,
/** 大屏工作站large screen workstation */
LSW,
/** 列车驾驶终端 */
DRIVE,
/** 虚拟站台屏蔽门终端 */
VR_PSD,
/** 现地综合监控 */
ISCS_LW,
/** 中心综合监控 */
ISCS_CW,
/** 车辆段终端 */
DEPOT,
/** 虚拟CCTV */
CCTV,
/** 虚拟电子沙盘 */
SANDBOX,
/** 派班工作站 */
SCHEDULING,
/* -----------client device start---------- */
/**
* 教员机instructor machine
*/
IM,
/**
* 调度工作站control workstation
*/
CW,
/**
* 现地工作站local workstation
*/
LW,
/**
* 联锁工作站interlock workstation
*/
ILW,
/**
* 虚拟综合后备盘(Integrated Back-Up Panel)
*/
VR_IBP,
/**
* 大屏工作站large screen workstation
*/
LSW,
/**
* 列车驾驶终端
*/
DRIVE,
/**
* 虚拟站台屏蔽门终端
*/
VR_PSD,
/**
* 现地综合监控
*/
ISCS_LW,
/**
* 中心综合监控
*/
ISCS_CW,
/**
* 车辆段终端
*/
DEPOT,
/**
* 虚拟CCTV
*/
CCTV,
/**
* 虚拟电子沙盘
*/
SANDBOX,
/**
* 派班工作站
*/
SCHEDULING,
PIS_STAND,
PIS_TRAIN,
/* -----------client device end---------- */
;
PIS_STAND,
PIS_TRAIN,
PIS,
TMS,
/* -----------client device end---------- */
/* -----------Other start---------- */
/**
* 沙盘运行计划
*/
SAND_TABLE_RUN_PLAN;
public static List<ProjectDeviceType> PlcDeviceList() {
return Arrays.asList(PLC_GATEWAY,
PSC,
PSD,
PSL,
IBP,
SECTION,
SWITCH,
SIGNAL,
DCU,
UDP_LOW,
UDP_CLIENT,
TRAIN);
}
public static List<ProjectDeviceType> PlcDeviceList() {
return Arrays.asList(PLC_GATEWAY,
PSC,
PSD,
PSL,
IBP,
SECTION,
SWITCH,
SIGNAL,
DCU,
UDP_LOW,
UDP_CLIENT,
TRAIN,
SAND_TABLE_RUN_PLAN);
}
}

View File

@ -281,14 +281,14 @@ public class CompanyController {
return iOrgScoringRuleService.getOrgScoringRuleDetails(ruleId);
}
/**
* 获取评价规则的评分结果
*/
@GetMapping("/orgScoringRule/score/{orgId}/{schoolYear}/{term}")
public List<OrgScoringResultVO> score(@PathVariable Long orgId, @PathVariable String schoolYear,
@PathVariable Integer term, @RequestAttribute LoginUserInfoVO loginInfo) {
return iOrgScoringRuleService.score(orgId, schoolYear, term, loginInfo);
}
// /**
// * 获取评价规则的评分结果
// */
// @GetMapping("/orgScoringRule/score/{orgId}/{schoolYear}/{term}")
// public List<OrgScoringResultVO> score(@PathVariable Long orgId, @PathVariable String schoolYear,
// @PathVariable Integer term, @RequestAttribute LoginUserInfoVO loginInfo) {
// return iOrgScoringRuleService.score(orgId, schoolYear, term, loginInfo);
// }
/**
* 删除评分规则

View File

@ -1,105 +0,0 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.constants.Project;
import club.joylink.rtss.controller.org.OrgProjectController;
import club.joylink.rtss.controller.paper.PaperCompositionController;
import club.joylink.rtss.controller.publish.MapFunctionController;
import club.joylink.rtss.controller.user.UserController;
import club.joylink.rtss.dao.MapDataDAO;
import club.joylink.rtss.dao.MapInfoDAO;
import club.joylink.rtss.dao.OrgDAO;
import club.joylink.rtss.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* 2023.01.10版本处理接口数据
*/
@RestController
@RequestMapping("/dataHandle")
public class DataHandleController {
@Autowired
private MapInfoDAO mapInfoDAO;
@Autowired
private MapDataDAO mapDataDAO;
@Autowired
private OrgProjectController orgProjectController;
@Autowired
private MapFunctionController mapFunctionController;
@Autowired
private PaperCompositionController paperCompositionController;
@Autowired
private UserController userController;
@Autowired
private OrgDAO orgDAO;
@Transactional(rollbackFor = Exception.class)
@PostMapping
public List<String> handle(HttpServletResponse response) {
correctMapVersion();
confirmDefaultOrgExist();
orgProjectController.oldDataHandle();
List<String> msgList = new ArrayList<>(mapFunctionController.oldDataHandle());
msgList.addAll(paperCompositionController.oldDataHandle());
msgList.addAll(userController.sync());
return msgList;
}
/**
* 纠正地图信息表的版本字段使用地图数据的最后一个版本
*/
private void correctMapVersion() {
MapInfoExample mapInfoExample = new MapInfoExample();
mapInfoExample.createCriteria().andStatusEqualTo("1");
List<MapInfo> onlineMaps = mapInfoDAO.selectByExample(mapInfoExample);
Map<Long, MapInfo> onlineMapMap = onlineMaps.stream().collect(Collectors.toMap(MapInfo::getId, Function.identity()));
MapDataExample mapDataExample = new MapDataExample();
mapDataExample.createCriteria().andMapIdIn(new ArrayList<>(onlineMapMap.keySet()));
List<MapData> onlineMapDataList = mapDataDAO.selectByExample(mapDataExample);
onlineMapDataList.stream()
.collect(Collectors.toMap(MapData::getMapId, MapData::getVersion, (d1, d2) -> {
float v1 = Float.parseFloat(d1);
float v2 = Float.parseFloat(d2);
return v1 > v2 ? d1 : d2;
})).forEach((mapId, version) -> {
MapInfo mapInfo = onlineMapMap.get(mapId);
mapInfo.setVersion(version);
mapInfoDAO.updateByPrimaryKey(mapInfo);
});
}
private void confirmDefaultOrgExist() {
OrgExample orgExample = new OrgExample();
orgExample.createCriteria().andNameEqualTo("默认组织");
if (orgDAO.countByExample(orgExample) != 0) {
return;
}
Org org = new Org();
org.setName("默认组织");
org.setProjectCode(Project.DEFAULT.name());
org.setStatus("1");
org.setCreateTime(LocalDateTime.now());
org.setCreatorId(1L);
orgDAO.insert(org);
org.setRootId(org.getId());
orgDAO.updateByPrimaryKey(org);
}
}

View File

@ -7,137 +7,148 @@ import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.LoginStatusVO;
import club.joylink.rtss.vo.client.LoginUserVO;
import club.joylink.rtss.vo.client.cgy.CgyThirdPartyLoginInfoVO;
import club.joylink.rtss.vo.client.validGroup.LoginInfoCheck;
import club.joylink.rtss.vo.client.validGroup.ThirdLoginInfoCheck;
import javax.validation.constraints.NotBlank;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/login")
public class LoginController {
@Autowired
private IAuthenticateService iAuthenticateService;
@Autowired
private IAuthenticateService iAuthenticateService;
@PostMapping(path = "/third")
public String thirdPartyLogin(@RequestBody @Validated(ThirdLoginInfoCheck.class) LoginUserVO loginInfo) {
return this.iAuthenticateService.thirdPartyLogin(loginInfo);
}
@PostMapping("/cgy/third")
public String cgyThirdPartyLogin(@RequestBody @Validated CgyThirdPartyLoginInfoVO loginInfo) {
return this.iAuthenticateService.cgyThirdPartyLogin(loginInfo);
}
/**
* 获取微信小程序登陆二维码
*/
@GetMapping(path = "/wmurl")
public LoginStatusVO getWmLoginUrl(@NotBlank String clientId, @NotBlank String secret,
String project, @RequestParam(required = false) String deviceCode) {
try {
return this.iAuthenticateService.getWmLoginUrl(clientId, secret, project, deviceCode);
} catch (BaseException e) {
throw e;
} catch (Exception e) {
throw BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.exception("获取登录二维码失败");
}
}
@PostMapping(path = "/third")
public String thirdPartyLogin(
@RequestBody @Validated(ThirdLoginInfoCheck.class) LoginUserVO loginInfo) {
return this.iAuthenticateService.thirdPartyLogin(loginInfo);
}
/**
* 用户微信小程序扫登陆二维码
*/
@GetMapping(path = "/scan/wmLoginUrl")
public AccountVO scanWmLoginQrCode(String code, String state) {
return this.iAuthenticateService.scanWmLoginQrCode(code, state);
/**
* 获取微信小程序登陆二维码
*/
@GetMapping(path = "/wmurl")
public LoginStatusVO getWmLoginUrl(@NotBlank String clientId, @NotBlank String secret,
String project, @RequestParam(required = false) String deviceCode) {
try {
return this.iAuthenticateService.getWmLoginUrl(clientId, secret, project, deviceCode);
} catch (BaseException e) {
throw e;
} catch (Exception e) {
throw BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.exception("获取登录二维码失败");
}
}
/**
* 微信小程序确认登陆接口
*/
@PostMapping(path = "/wm")
public void wmConfirmLogin(String code, String state) {
this.iAuthenticateService.wmConfirmClientLogin(code, state);
}
/**
* 用户微信小程序扫登陆二维码
*/
@GetMapping(path = "/scan/wmLoginUrl")
public AccountVO scanWmLoginQrCode(String code, String state) {
return this.iAuthenticateService.scanWmLoginQrCode(code, state);
}
@PostMapping()
public String loginWithPwd(@RequestBody @Validated(LoginInfoCheck.class) LoginUserVO loginUser) {
return iAuthenticateService.loginWithPwd(loginUser);
}
/**
* 微信小程序确认登陆接口
*/
@PostMapping(path = "/wm")
public void wmConfirmLogin(String code, String state) {
this.iAuthenticateService.wmConfirmClientLogin(code, state);
}
@GetMapping("/preLogout")
public void preLogout(String token) {
this.iAuthenticateService.preLogout(token);
}
@PostMapping()
public String loginWithPwd(@RequestBody @Validated(LoginInfoCheck.class) LoginUserVO loginUser) {
return iAuthenticateService.loginWithPwd(loginUser);
}
@GetMapping(path = "/logout")
public void logout(String token) {
this.iAuthenticateService.logout(token);
}
@GetMapping("/preLogout")
public void preLogout(String token) {
this.iAuthenticateService.preLogout(token);
}
@GetMapping(path = "/checkStatus")
public LoginStatusVO checkStatus(@NotBlank String sessionId) {
return iAuthenticateService.checkStatus(sessionId);
}
@GetMapping(path = "/logout")
public void logout(String token) {
this.iAuthenticateService.logout(token);
}
/**
* 获取用户信息 - 通过token
*
* @param token
* @return
*/
@GetMapping(path = "/getUserInfo")
public AccountVO getUserInfo(String token) {
LoginUserInfoVO loginUserInfoVO = this.iAuthenticateService.getLoginUserInfoByToken(token);
System.out.println(String.format("%s ====%s =========== from getUserInfo",loginUserInfoVO,loginUserInfoVO.getAccountVO().getCompanyId()));
return loginUserInfoVO.getAccountVO();
}
@GetMapping(path = "/checkStatus")
public LoginStatusVO checkStatus(@NotBlank String sessionId) {
return iAuthenticateService.checkStatus(sessionId);
}
/**
* 获取用户登录信息包含登录的项目/客户端等
*
* @param token
* @return
*/
@GetMapping("/loginUserInfo")
public LoginUserInfoVO getLoginUserInfo(String token) {
return this.iAuthenticateService.getLoginUserInfoByToken(token);
}
/**
* 获取用户信息 - 通过token
*
* @param token
* @return
*/
@GetMapping(path = "/getUserInfo")
public AccountVO getUserInfo(String token) {
LoginUserInfoVO loginUserInfoVO = this.iAuthenticateService.getLoginUserInfoByToken(token);
return loginUserInfoVO.getAccountVO();
}
/**
* <玖琏科技>微信小程序code换取token
*/
@GetMapping(path = "/wm/token")
public String getTokenByWmCode(String code) {
return this.iAuthenticateService.getTokenByWmCode(code);
}
/**
* 获取用户登录信息包含登录的项目/客户端等
*
* @param token
* @return
*/
@GetMapping("/loginUserInfo")
public LoginUserInfoVO getLoginUserInfo(String token) {
return this.iAuthenticateService.getLoginUserInfoByToken(token);
}
/**
* 到那儿了小程序code换token
*
* @param code
* @return
*/
@GetMapping(path = "/wm2/token")
public String getTokenByWmCode2(String code) {
return this.iAuthenticateService.getTokenByWmCode2(code);
}
/**
* <玖琏科技>微信小程序code换取token
*/
@GetMapping(path = "/wm/token")
public String getTokenByWmCode(String code) {
return this.iAuthenticateService.getTokenByWmCode(code);
}
/**
* 郑州共赢小程序code换token
*
* @param code
* @return
*/
@GetMapping(path = "/wm/zzww/token")
public String getTokenByWmCode3(String code) {
return this.iAuthenticateService.getTokenByWmCode3(code);
}
/**
* 到那儿了小程序code换token
*
* @param code
* @return
*/
@GetMapping(path = "/wm2/token")
public String getTokenByWmCode2(String code) {
return this.iAuthenticateService.getTokenByWmCode2(code);
}
/**
* token是否过期
*/
@GetMapping(path = "/{token}/isExpired")
public boolean isTokenExpired(@PathVariable String token) {
return this.iAuthenticateService.isTokenExpired(token);
}
/**
* 郑州共赢小程序code换token
*
* @param code
* @return
*/
@GetMapping(path = "/wm/zzww/token")
public String getTokenByWmCode3(String code) {
return this.iAuthenticateService.getTokenByWmCode3(code);
}
/**
* token是否过期
*/
@GetMapping(path = "/{token}/isExpired")
public boolean isTokenExpired(@PathVariable String token) {
return this.iAuthenticateService.isTokenExpired(token);
}
}

View File

@ -2,11 +2,14 @@ package club.joylink.rtss.controller;
import club.joylink.rtss.services.draftData.DraftMapDataHandleService;
import club.joylink.rtss.services.publishData.PublishMapDataHandler;
import java.util.LinkedHashMap;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.LinkedHashMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 地图数据处理
@ -16,31 +19,40 @@ import java.util.LinkedHashMap;
@RequestMapping("/api/mapData/handle")
public class MapDataHandleController {
@Autowired
private DraftMapDataHandleService draftMapDataHandleService;
@Autowired
private PublishMapDataHandler publishMapDataHandler;
@Autowired
private DraftMapDataHandleService draftMapDataHandleService;
@Autowired
private PublishMapDataHandler publishMapDataHandler;
@PutMapping("")
public void dataHandle() {
this.publishMapDataHandler.dataHandle();
}
@PutMapping("")
public void dataHandle() {
this.publishMapDataHandler.dataHandle();
}
@PutMapping("/xian3")
public void overlapSetHandle() {
this.publishMapDataHandler.xian3Handle();
}
@PutMapping("/xian3")
public void overlapSetHandle() {
this.publishMapDataHandler.xian3Handle();
}
@PutMapping("/signalSd")
public void signalShowDirection() {
this.publishMapDataHandler.signalShowDirection();
}
@PutMapping("/signalSd")
public void signalShowDirection() {
this.publishMapDataHandler.signalShowDirection();
}
/**
* 批量修改线路数据和ISCS的车站名
*/
@PutMapping("/{mapId}/stationName/mapAndIscs")
public void changeStationName(@PathVariable long mapId, @RequestBody LinkedHashMap<String, String> nameMap) {
this.publishMapDataHandler.changeStationName(mapId, nameMap);
}
/**
* 批量修改线路数据和ISCS的车站名
*/
@PutMapping("/{mapId}/stationName/mapAndIscs")
public void changeStationName(@PathVariable long mapId,
@RequestBody LinkedHashMap<String, String> nameMap) {
this.publishMapDataHandler.changeStationName(mapId, nameMap);
}
/**
* 批量修改线路区段长度
*/
@PutMapping("/{mapId}/{multiple}/sectionLen")
public void updateSectionLen(@PathVariable long mapId, @PathVariable int multiple) {
publishMapDataHandler.updateSectionLen(mapId, multiple);
}
}

View File

@ -1,39 +0,0 @@
package club.joylink.rtss.controller;
import club.joylink.rtss.services.IVoiceCommandService;
import club.joylink.rtss.simulation.cbtc.command.VoiceCommandBO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 语音指令接口
*/
@RestController
@RequestMapping("/api/voiceCommand")
public class VoiceCommandController {
@Autowired
private IVoiceCommandService iVoiceCommandService;
/**
* 添加语音指令
* @param command
*/
@PostMapping("")
public void create(VoiceCommandBO command) {
iVoiceCommandService.create(command);
}
/**
* 查询所有语音指令
* @return
*/
@GetMapping("")
public List<VoiceCommandBO> getAll() {
return iVoiceCommandService.getAll();
}
}

View File

@ -26,78 +26,79 @@ import java.util.List;
@Slf4j
public class CommonResponseBody implements ResponseBodyAdvice {
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return returnType.getMethod() != null && !returnType.getMethod().getReturnType().getSimpleName().equals("CommonJsonResponse");
}
@Override
public boolean supports(MethodParameter returnType, Class converterType) {
return returnType.getMethod() != null && !returnType.getMethod().getReturnType().getSimpleName().equals("CommonJsonResponse");
}
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
//byte[]
if(body instanceof byte[]){
response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);
return body;
}
//byte[]
if(body instanceof AbstractMessageLite){
@Override
public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType,
Class selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
//byte[]
if (body instanceof byte[]) {
response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);
return body;
}
//byte[]
/*if(body instanceof AbstractMessageLite){
response.getHeaders().setContentType(MediaType.APPLICATION_OCTET_STREAM);
final AbstractMessageLite proto = (AbstractMessageLite) body;
return proto.toByteArray();
}
if(body instanceof CommonJsonResponse) {
return body;
}
if(request.getURI().getPath().startsWith("/swagger")) {
return body;
}
if (request.getURI().getPath().equals("/api/userinfo/ifRegisted")) {
return body;
}
if (request.getURI().getPath().equals("/api/userinfo/identity")) {
return body;
}
CommonJsonResponse commonJsonResponse = CommonJsonResponse.newSuccessResponse(body);
if(returnType.getMethod().getReturnType().equals(String.class) || body instanceof String) {
return commonJsonResponse.toJSONString();
}
return commonJsonResponse;
}*/
if (body instanceof CommonJsonResponse) {
return body;
}
if (request.getURI().getPath().startsWith("/swagger")) {
return body;
}
if (request.getURI().getPath().equals("/api/userinfo/ifRegisted")) {
return body;
}
if (request.getURI().getPath().equals("/api/userinfo/identity")) {
return body;
}
CommonJsonResponse commonJsonResponse = CommonJsonResponse.newSuccessResponse(body);
if (returnType.getMethod().getReturnType().equals(String.class) || body instanceof String) {
return commonJsonResponse.toJSONString();
}
return commonJsonResponse;
}
@ExceptionHandler({PayException.class})
@ResponseStatus
public CommonJsonResponse handleException(PayException e) {
log.error("【支付异常】", e);
return CommonJsonResponse.newErrorResponse();
}
@ExceptionHandler({Exception.class})
@ResponseBody
public CommonJsonResponse handleException(Exception e) {
if (e instanceof MethodArgumentNotValidException) {
// 参数验证异常处理
MethodArgumentNotValidException validException = (MethodArgumentNotValidException) e;
List<ObjectError> errorList = validException.getBindingResult().getAllErrors();
StringBuffer sb = new StringBuffer();
errorList.forEach(error ->
sb.append(error.getDefaultMessage()).append(";"));
log.error("【参数校验异常】{}", e);
return CommonJsonResponse.newErrorResponse(ResponseConsts.VALIDATE_ERROR.getCode(), sb.toString());
}
if (e instanceof BusinessException) {
club.joylink.rtss.exception.BusinessException be = (club.joylink.rtss.exception.BusinessException) e;
log.error("【业务异常】{}", e);
return CommonJsonResponse.newErrorResponse(be.getCode(), be.getVoMessage());
} else if (e instanceof MissingServletRequestParameterException) {
log.error("【接口参数异常】", e);
return CommonJsonResponse.newErrorResponse(ResponseConsts.VALIDATE_ERROR.getCode(), "接口参数异常");
} else if (e instanceof SimulationException) {
club.joylink.rtss.simulation.cbtc.exception.SimulationException simulationException = (club.joylink.rtss.simulation.cbtc.exception.SimulationException) e;
log.error("【仿真系统异常】{}", e);
return CommonJsonResponse.newErrorResponse(simulationException.getCode(), simulationException.getMessage());
}
@ExceptionHandler({PayException.class})
@ResponseStatus
public CommonJsonResponse handleException(PayException e) {
log.error("【支付异常】", e);
return CommonJsonResponse.newErrorResponse();
}
@ExceptionHandler({Exception.class})
@ResponseBody
public CommonJsonResponse handleException(Exception e) {
if(e instanceof MethodArgumentNotValidException) {
// 参数验证异常处理
MethodArgumentNotValidException validException = (MethodArgumentNotValidException) e;
List<ObjectError> errorList = validException.getBindingResult().getAllErrors();
StringBuffer sb = new StringBuffer();
errorList.forEach(error ->
sb.append(error.getDefaultMessage()).append(";"));
log.error("【参数校验异常】{}", e);
return CommonJsonResponse.newErrorResponse(ResponseConsts.VALIDATE_ERROR.getCode(), sb.toString());
} if(e instanceof BusinessException) {
club.joylink.rtss.exception.BusinessException be = (club.joylink.rtss.exception.BusinessException) e;
log.error("【业务异常】{}", e);
return CommonJsonResponse.newErrorResponse(be.getCode(), be.getVoMessage());
} else if(e instanceof MissingServletRequestParameterException) {
log.error("【接口参数异常】", e);
return CommonJsonResponse.newErrorResponse(ResponseConsts.VALIDATE_ERROR.getCode(), "接口参数异常");
} else if (e instanceof SimulationException) {
club.joylink.rtss.simulation.cbtc.exception.SimulationException simulationException = (club.joylink.rtss.simulation.cbtc.exception.SimulationException) e;
log.error("【仿真系统异常】{}", e);
return CommonJsonResponse.newErrorResponse(simulationException.getCode(), simulationException.getMessage());
}
log.error("【系统异常】{}", e);
return CommonJsonResponse.newErrorResponse();
}
log.error("【系统异常】{}", e);
return CommonJsonResponse.newErrorResponse();
}
}

View File

@ -25,12 +25,12 @@ public class LicenseInterceptor implements HandlerInterceptor {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
// if (SystemEnv.isLocalEnv(otherConfig.getEnv())) {
if (SystemEnv.isLocalEnv(otherConfig.getEnv())) {
// log.debug(String.format("本地部署许可证验证"));
// LicenseVO license = this.licenseService.getLicense();
// BusinessExceptionAssertEnum.LICENSE_EXPIRED.assertNotTrue(license.isExpire(), "本地license已过期");
LicenseVO license = this.licenseService.getLicense();
BusinessExceptionAssertEnum.LICENSE_EXPIRED.assertNotTrue(license.isExpire(), "本地license已过期");
// log.debug("本地许可证有效");
// }
}
return true;
}
}

View File

@ -0,0 +1,71 @@
package club.joylink.rtss.controller.alarm;
import club.joylink.rtss.entity.AlarmTips;
import club.joylink.rtss.services.alarm.AlarmTipsService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.alarm.AlarmQueryVO;
import club.joylink.rtss.vo.alarm.AlarmTipsCreateVO;
import club.joylink.rtss.vo.client.PageQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 报警提示信息配置管理
*/
@RestController
@RequestMapping("/api/alarm")
public class AlarmTipsController {
@Autowired
private AlarmTipsService alarmTipsService;
/**
* 创建提示信息
*/
@PostMapping("")
public void create(@RequestBody AlarmTipsCreateVO alarmTipsCreateVO, @RequestAttribute AccountVO user) {
alarmTipsService.create(alarmTipsCreateVO, user.getId());
}
/**
* 单条查询
*/
@GetMapping("")
public AlarmTips get(AlarmQueryVO queryVO) {
return alarmTipsService.get(queryVO);
}
/**
* 列表查询
*/
@GetMapping("/list")
public List<AlarmTips> list() {
return alarmTipsService.list();
}
/**
* 分页查询
*/
@GetMapping("/page")
public PageVO<AlarmTips> page(PageQueryVO queryVO) {
return alarmTipsService.page(queryVO);
}
/**
* 更新
*/
@PutMapping("/{id}")
public void update(@PathVariable Long id, @RequestBody AlarmTipsCreateVO createVO, @RequestAttribute AccountVO user) {
alarmTipsService.update(id, createVO, user.getId());
}
/**
* 删除
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
alarmTipsService.delete(id);
}
}

View File

@ -2,253 +2,160 @@ package club.joylink.rtss.controller.paper;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.dao.*;
import club.joylink.rtss.dao.paper.PaperCompositionDAO;
import club.joylink.rtss.dao.paper.PaperUserDAO;
import club.joylink.rtss.entity.*;
import club.joylink.rtss.entity.paper.PaperComposition;
import club.joylink.rtss.entity.paper.PaperCompositionExample;
import club.joylink.rtss.entity.paper.PaperUser;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.services.IMapService;
import club.joylink.rtss.services.paper.PaperCompositionService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.map.MapVO;
import club.joylink.rtss.vo.paper.*;
import club.joylink.rtss.vo.paper.CreatePaperCompositionRspVo;
import club.joylink.rtss.vo.paper.FindPaperCompositionByAccountReqVo;
import club.joylink.rtss.vo.paper.FindPaperCompositionPageReqVo;
import club.joylink.rtss.vo.paper.PaperCompositionWithRuleVo;
import club.joylink.rtss.vo.paper.PaperCompositionWithRuleVo.CreatorBasic;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 试卷蓝图业务接口
* <p>
* 试卷蓝图状态解释<br>
* 编辑中-可以修改删除;封存-不可以修改删除可以用来生成试卷可以状态迁移编辑中和已使用已使用-已经被用来生成过试卷不可以修改删除状态也不能改变
* 试卷蓝图状态解释<br> 编辑中-可以修改删除;封存-不可以修改删除可以用来生成试卷可以状态迁移编辑中和已使用已使用-已经被用来生成过试卷不可以修改删除状态也不能改变
*/
@Slf4j
@RestController
@RequestMapping("/api/v2/paper/composition")
public class PaperCompositionController {
@Autowired
private PaperCompositionService compositionService;
/**
* 数据管理查询
*
* @param req
* @return
*/
@Role(value = RoleEnum.SuperAdmin)
@PostMapping(path = "/manage/paging")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionForPage(@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionByPage(req);
}
@Autowired
private PaperCompositionService compositionService;
/**
* 创建试卷蓝图包括规则定义
* 参数 tags 只支持单个
*
* @param orgId 组织id
*/
@PostMapping("/{orgId}")
public CreatePaperCompositionRspVo createPaperCompositionWithRuleForOrg(@PathVariable("orgId") Long orgId, @RequestBody PaperCompositionWithRuleVo req, @RequestAttribute AccountVO user) {
req.setOrgId(orgId);
return this.compositionService.createPaperCompositionWithRule(req, user);
}
/**
* 数据管理查询
*
* @param req
* @return
*/
@Role(value = RoleEnum.SuperAdmin)
@PostMapping(path = "/manage/paging")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionForPage(
@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 更新试卷蓝图包括规则定义
* 参数 tags 只支持单个
*/
@PutMapping
public void updatePaperCompositionWithRule(@RequestBody PaperCompositionWithRuleVo req, @RequestAttribute AccountVO user) {
this.compositionService.updatePaperCompositionWithRule(req, user);
}
/**
* 创建试卷蓝图包括规则定义 参数 tags 只支持单个
*
* @param orgId 组织id
*/
@PostMapping("/{orgId}")
public CreatePaperCompositionRspVo createPaperCompositionWithRuleForOrg(
@PathVariable("orgId") Long orgId, @RequestBody PaperCompositionWithRuleVo req,
@RequestAttribute AccountVO user) {
req.setOrgId(orgId);
return this.compositionService.createPaperCompositionWithRule(req, user);
}
/**
* 更新试卷蓝图包括规则定义 参数 tags 只支持单个
*/
@PutMapping
public void updatePaperCompositionWithRule(@RequestBody PaperCompositionWithRuleVo req,
@RequestAttribute AccountVO user) {
this.compositionService.updatePaperCompositionWithRule(req, user);
}
/**
* 将编辑好的试卷蓝图封存
*/
@PutMapping("/{pcId}/lock")
public void lockPaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
compositionService.lockPaperComposition(pcId, user);
}
/**
* 将编辑好的试卷蓝图封存
*/
@PutMapping("/{pcId}/lock")
public void lockPaperComposition(@PathVariable("pcId") Long pcId,
@RequestAttribute AccountVO user) {
compositionService.lockPaperComposition(pcId, user);
}
/**
* 将封存的试卷蓝图设置失效
*/
@PutMapping("/{pcId}/invalid")
public void invalidPaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
compositionService.unlockPaperComposition(pcId, user);
}
/**
* 将封存的试卷蓝图设置失效
*/
@PutMapping("/{pcId}/invalid")
public void invalidPaperComposition(@PathVariable("pcId") Long pcId,
@RequestAttribute AccountVO user) {
compositionService.unlockPaperComposition(pcId, user);
}
/**
* 删除试卷蓝图(只能删除处于编辑状态的)
*
* @param pcId 试卷蓝图id
*/
@DeleteMapping("/{pcId}")
public void deletePaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
compositionService.deletePaperComposition(pcId, user);
}
/**
* 删除试卷蓝图(只能删除处于编辑状态的)
*
* @param pcId 试卷蓝图id
*/
@DeleteMapping("/{pcId}")
public void deletePaperComposition(@PathVariable("pcId") Long pcId,
@RequestAttribute AccountVO user) {
compositionService.deletePaperComposition(pcId, user);
}
/**
* 根据(组织id线路id试卷蓝图名称简介)分页查找试卷蓝图
*/
@PostMapping("/find/page")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionByPage(@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 根据(组织id线路id试卷蓝图名称简介)分页查找试卷蓝图
*/
@PostMapping("/find/page")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionByPage(
@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 根据mapId查询蓝图的基本信息
*
* @return
*/
@PostMapping("/find/list")
public List<PaperCompositionWithRuleVo> findPaperCompositionByList(@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionList(req);
}
/**
* 查询试卷的创建者的信息
*/
@PostMapping("/list/creatorInfo")
public List<CreatorBasic> queryCreatorList(@RequestBody FindPaperCompositionPageReqVo req) {
return compositionService.queryCreatorList(req);
}
/**
* 根据试卷蓝图名称简介分页查找某个组织的试卷蓝图
*/
@PostMapping("/find/page/for/{orgId}")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionForOrgByPage(@PathVariable("orgId") Long orgId, @RequestBody FindPaperCompositionPageReqVo req) {
req.setOrgId(orgId);
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 根据mapId查询蓝图的基本信息
*
* @return
*/
@PostMapping("/find/list")
public List<PaperCompositionWithRuleVo> findPaperCompositionByList(
@RequestBody FindPaperCompositionPageReqVo req) {
return this.compositionService.findPaperCompositionList(req);
}
/**
* 根据账户分页查找试卷蓝图
*/
@PostMapping("/find/page/by/account")
public PageVO<PaperCompositionWithRuleVo> findAccountPaperCompositionByPage(@RequestBody FindPaperCompositionByAccountReqVo req) {
return this.compositionService.findPaperCompositionByPageForAccount(req);
}
/**
* 根据试卷蓝图名称简介分页查找某个组织的试卷蓝图
*/
@PostMapping("/find/page/for/{orgId}")
public PageVO<PaperCompositionWithRuleVo> findPaperCompositionForOrgByPage(
@PathVariable("orgId") Long orgId, @RequestBody FindPaperCompositionPageReqVo req) {
req.setOrgId(orgId);
return this.compositionService.findPaperCompositionByPage(req);
}
/**
* 获取试卷完整的蓝图包括规则
*
* @param pcId 试卷蓝图id
*/
@GetMapping("/{pcId}")
public PaperCompositionWithRuleVo findPaperComposition(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
return this.compositionService.findPaperComposition(pcId, user);
}
/**
* 根据账户分页查找试卷蓝图
*/
@PostMapping("/find/page/by/account")
public PageVO<PaperCompositionWithRuleVo> findAccountPaperCompositionByPage(
@RequestBody FindPaperCompositionByAccountReqVo req) {
return this.compositionService.findPaperCompositionByPageForAccount(req);
}
@Autowired
ExamDefinitionDAO examDefinitionDAO;
@Autowired
IMapService iMapService;
@Autowired
OrgDAO orgDAO;
@Autowired
OrgProjectDAO orgProjectDAO;
@Autowired
UserExamMapper userExamMapper;
@Autowired
private PaperUserDAO paperUserDAO;
@Autowired
PaperCompositionDAO paperCompositionDAO;
@Autowired
LsLessonDAO lsLessonDAO;
/**
* 旧数据处理接口用完删除
*/
@Transactional(rollbackFor = Exception.class)
@PostMapping("/oldData/handle")
public List<String> oldDataHandle() {
paperCompositionDAO.deleteByExample(null);
paperUserDAO.deleteByExample(null);
List<String> msg = new ArrayList<>();
//所有在线地图
Map<Long, MapVO> onlineMaps = iMapService.listOnline().stream().collect(Collectors.toMap(MapVO::getId, Function.identity()));
//在线地图的有效试卷
LsLessonExample lsLessonExample = new LsLessonExample();
lsLessonExample.createCriteria().andMapIdIn(new ArrayList<>(onlineMaps.keySet())).andStatusEqualTo("1");
List<Long> validLessonIds = lsLessonDAO.selectByExample(lsLessonExample)
.stream().map(LsLesson::getId).collect(Collectors.toList());
//所有项目-组织对应关系目前仅教学通用项目
Map<String, Long> projectCode_orgId_map = orgProjectDAO.selectByExample(null).stream()
.collect(Collectors.toMap(OrgProject::getProjectCode, OrgProject::getOrgId, (oId1, oId2) -> oId1));
//转化试卷并记录试卷id变化
ExamDefinitionExample examDefinitionExample = new ExamDefinitionExample();
examDefinitionExample.createCriteria().andStatusEqualTo("1").andLessonIdIn(validLessonIds);
Map<Long, Long> old_newExamIdMap = new HashMap<>();
examDefinitionDAO.selectByExample(examDefinitionExample).stream()
.peek(exam -> {
if (exam.getOrgId() != null) {
return;
}
MapVO map = onlineMaps.get(exam.getMapId());
String projectCode = map.getProjectCode();
if (StringUtils.hasText(projectCode)) {
exam.setOrgId(projectCode_orgId_map.get(projectCode));
}
})
.filter(exam -> exam.getOrgId() != null)
.forEach(exam -> {
PaperCompositionWithRuleVo paperCompositionWithRuleVo = new PaperCompositionWithRuleVo();
paperCompositionWithRuleVo.setMapId(exam.getMapId());
paperCompositionWithRuleVo.setName(exam.getName());
paperCompositionWithRuleVo.setProfile(exam.getRemarks());
// paperCompositionWithRuleVo.setOrgId(exam.getOrgId());
paperCompositionWithRuleVo.setStartTime(exam.getStartTime());
paperCompositionWithRuleVo.setEndTime(exam.getEndTime());
paperCompositionWithRuleVo.setValidDuration(exam.getDuration() / 60);
paperCompositionWithRuleVo.setPassScore(exam.getPassingPoint());
paperCompositionWithRuleVo.setFullScore(exam.getFullPoint());
// paperCompositionWithRuleVo.setCreatorId(exam.getCreatorId());
paperCompositionWithRuleVo.setCreateTime(exam.getCreateTime());
paperCompositionWithRuleVo.setUpdateTime(null);
paperCompositionWithRuleVo.setState(PaperCompositionState.Invalid);
AccountVO creator = new AccountVO();
creator.setId(exam.getCreatorId());
CreatePaperCompositionRspVo paperComposition = createPaperCompositionWithRuleForOrg(exam.getOrgId(), paperCompositionWithRuleVo, creator);
old_newExamIdMap.put(exam.getId(), paperComposition.getId());
});
//将所有试卷状态改为失效
PaperCompositionExample paperCompositionExample = new PaperCompositionExample();
paperCompositionExample.createCriteria().andIdIn(new ArrayList<>(old_newExamIdMap.values()));
PaperComposition paperComposition = new PaperComposition();
paperComposition.setState(PaperCompositionState.Invalid.getValue());
paperCompositionDAO.updateByExampleSelective(paperComposition, paperCompositionExample);
//查询试卷记录
ArrayList<Long> oldExamIds = new ArrayList<>(old_newExamIdMap.keySet());
UserExamExample userExamExample = new UserExamExample();
userExamExample.createCriteria().andExamIdIn(oldExamIds);
List<UserExam> userExams = userExamMapper.selectByExample(userExamExample);
//转化试卷记录
LocalDateTime now = LocalDateTime.now();
for (UserExam userExam : userExams) {
PaperUser paperUser = new PaperUser();
paperUser.setUserId(userExam.getUserId());
Long newExamId = old_newExamIdMap.get(userExam.getExamId());
BusinessExceptionAssertEnum.SYSTEM_EXCEPTION.assertNotNull(newExamId);
paperUser.setPcId(newExamId);
paperUser.setScore(userExam.getScore().intValue());
paperUser.setStartTime(userExam.getStartTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
if (userExam.getEndTime() != null) {
paperUser.setEndTime(userExam.getEndTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
}
paperUser.setCreateTime(now);
paperUserDAO.insert(paperUser);
}
return msg;
}
/**
* 获取试卷完整的蓝图包括规则
*
* @param pcId 试卷蓝图id
*/
@GetMapping("/{pcId}")
public PaperCompositionWithRuleVo findPaperComposition(@PathVariable("pcId") Long pcId,
@RequestAttribute AccountVO user) {
return this.compositionService.findPaperComposition(pcId, user);
}
}

View File

@ -18,149 +18,119 @@ import java.util.List;
@RestController
@RequestMapping("/api/v2/paper")
public class PaperUserController {
@Autowired
private PaperUserService paperUserService;
@Autowired
private PaperUserCreateService paperUserCreateService;
@Autowired
private PaperUserLoadQuestionService paperUserLoadQuestionService;
@Autowired
private PaperUserSubmitAnswerService paperUserSubmitAnswerService;
@Autowired
private PaperUserFindPageService paperUserFindPageService;
/**
* 根据试卷蓝图生成用户的试卷
*
* @param pcId 试卷蓝图id
*/
@PostMapping("/{pcId}")
public CreatePaperRspVo createPaper(@PathVariable("pcId") Long pcId, @RequestAttribute AccountVO user) {
return this.paperUserCreateService.createPaper(pcId, user);
}
@Autowired
private PaperUserService paperUserService;
@Autowired
private PaperUserCreateService paperUserCreateService;
@Autowired
private PaperUserLoadQuestionService paperUserLoadQuestionService;
@Autowired
private PaperUserSubmitAnswerService paperUserSubmitAnswerService;
@Autowired
private PaperUserFindPageService paperUserFindPageService;
/**
* 获取用户试卷完整信息
*
* @param puId 用户试卷id
*/
@GetMapping("/user/{puId}")
public PaperUserWholeVo findPaperUser(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
return this.paperUserService.findPaperUser(puId);
}
/**
* 根据试卷蓝图生成用户的试卷
*
* @param pcId 试卷蓝图id
*/
@PostMapping("/{pcId}")
public CreatePaperRspVo createPaper(@PathVariable("pcId") Long pcId,
@RequestAttribute AccountVO user) {
return this.paperUserCreateService.createPaper(pcId, user);
}
/**
* 删除用户试卷
*
* @param puId 用户试卷id
*/
@DeleteMapping("/user/{puId}")
public void deletePaperUser(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
this.paperUserService.deletePaperUser(puId);
}
/**
* 获取用户试卷完整信息
*
* @param puId 用户试卷id
*/
@GetMapping("/user/{puId}")
public PaperUserWholeVo findPaperUser(@PathVariable("puId") Long puId,
@RequestAttribute AccountVO user) {
return this.paperUserService.findPaperUser(puId);
}
/**
* 开始答题
*
* @param puId 用户试卷id
*/
@PostMapping("/user/{puId}/start")
public void paperStart(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
this.paperUserService.paperStart(puId);
}
/**
* 用户交卷
*
* @param puId 用户试卷id
*/
@PostMapping("/user/{puId}/submit")
public PaperSubmitRspVo paperSubmit(@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
return this.paperUserService.paperSubmit(puId);
}
/**
* 用户交卷
*
* @param puId 用户试卷id
*/
@PostMapping("/user/{puId}/submit")
public PaperSubmitRspVo paperSubmit(@PathVariable("puId") Long puId,
@RequestAttribute AccountVO user) {
return this.paperUserService.paperSubmit(puId, user);
}
/**
* 加载用户试卷试题
* @param groupType 试卷试题大类型:1-理论题2-实训题
* @param qId 试题id
* @param puId 试卷id
* @return
*/
@GetMapping("/user/question/{groupType}/{qId}/{puId}")
public PaperQuestionLoadRspVo loadQuestion(@PathVariable("groupType") Integer groupType, @PathVariable("qId") Long qId,@PathVariable("puId") Long puId, @RequestAttribute AccountVO user) {
PaperQType.GroupType pgType = PaperQType.GroupType.getItem(groupType);
return this.paperUserLoadQuestionService.loadQuestion(pgType, qId,puId, user);
}
/**
* 加载用户试卷试题
*
* @param groupType 试卷试题大类型:1-理论题2-实训题
* @param qId 试题id
* @param puId 试卷id
* @return
*/
@GetMapping("/user/question/{groupType}/{qId}/{puId}")
public PaperQuestionLoadRspVo loadQuestion(@PathVariable("groupType") Integer groupType,
@PathVariable("qId") Long qId, @PathVariable("puId") Long puId,
@RequestAttribute AccountVO user) {
PaperQType.GroupType pgType = PaperQType.GroupType.getItem(groupType);
return this.paperUserLoadQuestionService.loadQuestion(pgType, qId, puId, user);
}
/**
* 用户提交答案
* <p>
* 对于理论题用户完成一道题提交一道题的答案<br>
* 对于实训题用户完成实训操作后由实训系统自己评判实训是否成功完成前端提交实训是否成功完成的结果即可
*/
@PostMapping("/user/question/answer")
public PaperSubmitAnswerRspVo submitAnswer(@RequestBody PaperSubmitAnswerReqVo req, @RequestAttribute AccountVO user) {
return this.paperUserSubmitAnswerService.submitAnswer(req, user);
}
/**
* 用户提交答案
* <p>
* 对于理论题用户完成一道题提交一道题的答案<br> 对于实训题用户完成实训操作后由实训系统自己评判实训是否成功完成前端提交实训是否成功完成的结果即可
*/
@PostMapping("/user/question/answer")
public PaperSubmitAnswerRspVo submitAnswer(@RequestBody PaperSubmitAnswerReqVo req,
@RequestAttribute AccountVO user) {
return this.paperUserSubmitAnswerService.submitAnswer(req, user);
}
/**
* 分页查询某个试卷蓝图的所有用户试卷基本信息
*/
/**
* 分页查询某个试卷蓝图的所有用户试卷基本信息
*/
/* @PostMapping("/user/page/composition")
public PageVO<PaperUserInfoVo> findPaperUserByPage(@RequestBody FindPaperUserForCompositionReqVo req, @RequestAttribute AccountVO user) {
return this.paperUserFindPageService.findPaperUserByPage(req);
}*/
/**
* 查看某个班级的某个试卷蓝图的所有学生试卷
*/
@GetMapping("/user/page")
public PageVO<PageUserDetailVO> findPaperUserByPageForClass(@ModelAttribute PageUserDetailQuery req) {
return this.paperUserFindPageService.findPaperUserByPageForClass(req);
}
/**
* 查看某个班级的某个试卷蓝图的所有学生试卷
*/
@GetMapping("/user/page")
public PageVO<PageUserDetailVO> findPaperUserByPageForClass(
@ModelAttribute PageUserDetailQuery req) {
return this.paperUserFindPageService.findPaperUserByPageForClass(req);
}
/**
* 查看某个班级的某个试卷蓝图的所有学生试卷 (柱状图)
* @param req
* @return
*/
@GetMapping("/user/curve")
public CurveForClassVO curveForClass(@ModelAttribute PageUserDetailQuery req) {
return this.paperUserFindPageService.curveForClass(req);
}
/**
* 查看某个班级的某个试卷蓝图的所有学生试卷 (柱状图)
*
* @param req
* @return
*/
@GetMapping("/user/curve")
public CurveForClassVO curveForClass(@ModelAttribute PageUserDetailQuery req) {
return this.paperUserFindPageService.curveForClass(req);
}
/**
* 查看某个账户的某个试卷蓝图的用户试卷
*/
/* @PostMapping("/user/list/account")
public List<PaperUserInfoVo> findPaperUserForAccount(@RequestBody FindPaperUserForAccountReqVo req, @RequestAttribute AccountVO user) {
return this.paperUserFindPageService.findPaperUserForAccount(req);
}*/
@PostMapping("/question/label")
public Collection<String> paperAllLabel(@RequestBody FindCountForQuestionReqVo req) {
return this.paperUserService.findAllLabel(req);
}
/**
* 查看组织的某个账户的某个试卷蓝图的用户试卷
*/
/* @PostMapping("/{orgId}/user/list/account")
public List<PaperUserInfoVo> findOrgPaperUserForAccount(@PathVariable("orgId") Long orgId, @RequestBody FindPaperUserForAccountReqVo req, @RequestAttribute AccountVO user) {
req.setOrgId(orgId);
return this.paperUserFindPageService.findPaperUserForAccount(req);
}*/
@PostMapping("/question/label")
public Collection<String> paperAllLabel(@RequestBody FindCountForQuestionReqVo req){
return this.paperUserService.findAllLabel(req);
}
/**
* 查看组织下某个类型题的数量
* 参数 tags 目前只支持单个
*/
// @PostMapping("/{orgId}/question/count")
@PostMapping("/question/count")
public Long findCountForQuestion(/*@PathVariable("orgId") Long orgId,*/ @RequestBody FindCountForQuestionReqVo req) {
/**
* 查看组织下某个类型题的数量 参数 tags 目前只支持单个
*/
@PostMapping("/question/count")
public Long findCountForQuestion(@RequestBody FindCountForQuestionReqVo req) {
// req.setOrgId(orgId);
return this.paperUserService.findCountForQuestion(req);
}
return this.paperUserService.findCountForQuestion(req);
}
}

View File

@ -7,12 +7,32 @@ import club.joylink.rtss.services.project.DeviceService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.project.*;
import club.joylink.rtss.vo.client.project.IbpConfigVO;
import club.joylink.rtss.vo.client.project.LswConfigVO;
import club.joylink.rtss.vo.client.project.LwConfigVO;
import club.joylink.rtss.vo.client.project.PlcGatewayConfigVO;
import club.joylink.rtss.vo.client.project.ProjectDevicePageQueryVO;
import club.joylink.rtss.vo.client.project.ProjectDeviceVO;
import club.joylink.rtss.vo.client.project.PscConfigVO;
import club.joylink.rtss.vo.client.project.PsdConfigVO;
import club.joylink.rtss.vo.client.project.PslConfigVO;
import club.joylink.rtss.vo.client.project.RelationLoginConfigVO;
import club.joylink.rtss.vo.client.project.SignalConfigVO;
import club.joylink.rtss.vo.client.project.SwitchConfigVO;
import club.joylink.rtss.vo.client.project.VrIbpConfigVO;
import club.joylink.rtss.vo.client.project.VrpsdConfigVO;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 项目设备管理接口()
@ -21,241 +41,278 @@ import java.util.List;
@RequestMapping(path = "/api/device")
public class DeviceController {
@Autowired
private DeviceService deviceService;
@Autowired
private DeviceService deviceService;
/**
* 分页查询项目设备
*/
@GetMapping("/paging")
public PageVO<ProjectDeviceVO> pagingQuery(ProjectDevicePageQueryVO queryVO) {
return this.deviceService.pagingQuery(queryVO);
}
/**
* 分页查询项目设备
*/
@GetMapping("/paging")
public PageVO<ProjectDeviceVO> pagingQuery(ProjectDevicePageQueryVO queryVO) {
return this.deviceService.pagingQuery(queryVO);
}
/**
* 项目设备编号是否已经存在
*/
@GetMapping("/exist/{code}")
public boolean isDeviceCodeExist(@PathVariable String code, String projectCode) {
String project = Project.isDefault(projectCode) ? Project.DEFAULT_PROJECT_CODE : projectCode;
return this.deviceService.isDeviceCodeExist(project, code);
}
/**
* 项目设备编号是否已经存在
*/
@GetMapping("/exist/{code}")
public boolean isDeviceCodeExist(@PathVariable String code, String projectCode) {
String project = Project.isDefault(projectCode) ? Project.DEFAULT_PROJECT_CODE : projectCode;
return this.deviceService.isDeviceCodeExist(project, code);
}
/**
* 新建项目设备
*/
@PostMapping("")
public String create(@RequestBody @Validated ProjectDeviceVO deviceVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO userLoginInfo) {
return this.deviceService.create(deviceVO, userLoginInfo);
}
/**
* 新建项目设备
*/
@PostMapping("")
public String create(@RequestBody @Validated ProjectDeviceVO deviceVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY)
LoginUserInfoVO userLoginInfo) {
return this.deviceService.create(deviceVO, userLoginInfo);
}
/**
* 获取设备详情包含配置信息
*/
@GetMapping("/{id}")
public ProjectDeviceVO getDeviceDetailInfoById(@PathVariable Long id) {
return this.deviceService.getDeviceDetailInfoById(id);
}
/**
* 获取设备详情包含配置信息
*/
@GetMapping("/{id}")
public ProjectDeviceVO getDeviceDetailInfoById(@PathVariable Long id) {
return this.deviceService.getDeviceDetailInfoById(id);
}
/**
* 添加/修改道岔设备网关映射配置
*/
@PutMapping("/{id}/config/plcgateway")
public void updatePlcGatewayConfig(@PathVariable Long id, @RequestBody @Validated PlcGatewayConfigVO configVO) {
this.deviceService.updatePlcGatewayConfig(id, configVO);
}
/**
* 添加/修改道岔设备网关映射配置
*/
@PutMapping("/{id}/config/plcgateway")
public void updatePlcGatewayConfig(@PathVariable Long id,
@RequestBody @Validated PlcGatewayConfigVO configVO) {
this.deviceService.updatePlcGatewayConfig(id, configVO);
}
/**
* 添加/修改道岔设备网关映射配置
*/
@PutMapping("/{id}/config/switch")
public void updateSwitchConfig(@PathVariable Long id, @RequestBody @Validated SwitchConfigVO configVO) {
this.deviceService.updateSwitchConfig(id, configVO);
}
/**
* 添加/修改道岔设备网关映射配置
*/
@PutMapping("/{id}/config/switch")
public void updateSwitchConfig(@PathVariable Long id,
@RequestBody @Validated SwitchConfigVO configVO) {
this.deviceService.updateSwitchConfig(id, configVO);
}
/**
* 添加/修改信号机设备网关映射配置
*/
@PutMapping("/{id}/config/signal")
public void updateSignalConfig(@PathVariable Long id, @RequestBody @Validated SignalConfigVO configVO) {
this.deviceService.updateSignalConfig(id, configVO);
}
/**
* 添加/修改信号机设备网关映射配置
*/
@PutMapping("/{id}/config/signal")
public void updateSignalConfig(@PathVariable Long id,
@RequestBody @Validated SignalConfigVO configVO) {
this.deviceService.updateSignalConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psc")
public void updatePscConfig(@PathVariable Long id, @RequestBody @Validated PscConfigVO configVO) {
this.deviceService.updatePscConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psc")
public void updatePscConfig(@PathVariable Long id, @RequestBody @Validated PscConfigVO configVO) {
this.deviceService.updatePscConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psd")
public void updatePsdConfig(@PathVariable Long id, @RequestBody @Validated PsdConfigVO configVO) {
this.deviceService.updatePsdConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psd")
public void updatePsdConfig(@PathVariable Long id, @RequestBody @Validated PsdConfigVO configVO) {
this.deviceService.updatePsdConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psl")
public void updatePslConfig(@PathVariable Long id, @RequestBody @Validated PslConfigVO configVO) {
this.deviceService.updatePslConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/psl")
public void updatePslConfig(@PathVariable Long id, @RequestBody @Validated PslConfigVO configVO) {
this.deviceService.updatePslConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/ibp")
public void updateIbpConfig(@PathVariable Long id, @RequestBody @Validated IbpConfigVO configVO) {
this.deviceService.updateIbpConfig(id, configVO);
}
/**
* 添加/修改屏蔽门设备网关映射配置
*/
@PutMapping("/{id}/config/ibp")
public void updateIbpConfig(@PathVariable Long id, @RequestBody @Validated IbpConfigVO configVO) {
this.deviceService.updateIbpConfig(id, configVO);
}
/**
* 添加/修改虚拟IBP盘配置
*/
@PutMapping("/{id}/config/vribp")
public void updateVrIbpConfig(@PathVariable Long id, @RequestBody @Validated VrIbpConfigVO configVO) {
this.deviceService.updateVrIbpConfig(id, configVO);
}
/**
* 添加/修改虚拟IBP盘配置
*/
@PutMapping("/{id}/config/vribp")
public void updateVrIbpConfig(@PathVariable Long id,
@RequestBody @Validated VrIbpConfigVO configVO) {
this.deviceService.updateVrIbpConfig(id, configVO);
}
/**
* 添加/修改现地工作站配置
*/
@PutMapping("/{id}/config/lw")
public void updateLwConfig(@PathVariable Long id, @RequestBody @Validated LwConfigVO configVO) {
this.deviceService.updateLwConfig(id, configVO);
}
/**
* 添加/修改现地工作站配置
*/
@PutMapping("/{id}/config/lw")
public void updateLwConfig(@PathVariable Long id, @RequestBody @Validated LwConfigVO configVO) {
this.deviceService.updateLwConfig(id, configVO);
}
/**
* 添加/修改大屏工作站配置
*/
@PutMapping("/{id}/config/lsw")
public void updateLswConfig(@PathVariable Long id, @RequestBody @Validated LswConfigVO configVO) {
this.deviceService.updateLswConfig(id, configVO);
}
/**
* 添加/修改大屏工作站配置
*/
@PutMapping("/{id}/config/lsw")
public void updateLswConfig(@PathVariable Long id, @RequestBody @Validated LswConfigVO configVO) {
this.deviceService.updateLswConfig(id, configVO);
}
/**
* 添加/修改CCTV工作站配置
*/
@PutMapping("/{id}/config/cctv")
public void updateCctvConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateCctvConfig(id, configVO);
}
/**
* 添加/修改CCTV工作站配置
*/
@PutMapping("/{id}/config/cctv")
public void updateCctvConfig(@PathVariable Long id,
@RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateCctvConfig(id, configVO);
}
/**
* 添加/修改电子沙盘工作站配置
*/
@PutMapping("/{id}/config/sandbox")
public void updateSandboxConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateSandboxConfig(id, configVO);
}
/**
* 添加/修改电子沙盘工作站配置
*/
@PutMapping("/{id}/config/sandbox")
public void updateSandboxConfig(@PathVariable Long id,
@RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateSandboxConfig(id, configVO);
}
/**
* 添加/修改虚拟屏蔽门工作站配置
*/
@PutMapping("/{id}/config/vrpsd")
public void updateVrpsdConfig(@PathVariable Long id, @RequestBody @Validated VrpsdConfigVO configVO) {
this.deviceService.updateVrpsdConfig(id, configVO);
}
/**
* 添加/修改虚拟屏蔽门工作站配置
*/
@PutMapping("/{id}/config/vrpsd")
public void updateVrpsdConfig(@PathVariable Long id,
@RequestBody @Validated VrpsdConfigVO configVO) {
this.deviceService.updateVrpsdConfig(id, configVO);
}
/**
* 添加/修改现地综合监控工作站配置
*/
@PutMapping("/{id}/config/iscslw")
public void updateIscsLwConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateIscsLwConfig(id, configVO);
}
/**
* 添加/修改现地综合监控工作站配置
*/
@PutMapping("/{id}/config/iscslw")
public void updateIscsLwConfig(@PathVariable Long id,
@RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateIscsLwConfig(id, configVO);
}
/**
* 添加/修改中心综合监控工作站配置
*/
@PutMapping("/{id}/config/iscscw")
public void updateIscsCwConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateIscsCwConfig(id, configVO);
}
/**
* 添加/修改中心综合监控工作站配置
*/
@PutMapping("/{id}/config/iscscw")
public void updateIscsCwConfig(@PathVariable Long id,
@RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateIscsCwConfig(id, configVO);
}
/**
* 添加/修改联锁工作站配置
*/
@PutMapping("/{id}/config/ilw")
public void updateIlwConfig(@PathVariable Long id, @RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateIlwConfig(id, configVO);
}
/**
* 添加/修改联锁工作站配置
*/
@PutMapping("/{id}/config/ilw")
public void updateIlwConfig(@PathVariable Long id,
@RequestBody @Validated RelationLoginConfigVO configVO) {
this.deviceService.updateIlwConfig(id, configVO);
}
/**
* 修改配置以json的形式
*/
@PutMapping("/config/updateConfig")
public void updateConfig(@RequestBody ProjectDeviceVO projectDeviceVO) {
this.deviceService.updateConfig(projectDeviceVO);
}
/**
* 修改配置以json的形式
*/
@PutMapping("/config/updateConfig")
public void updateConfig(@RequestBody ProjectDeviceVO projectDeviceVO) {
this.deviceService.updateConfig(projectDeviceVO);
}
/**
* 删除设备
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
this.deviceService.delete(id);
}
/**
* 删除设备
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
this.deviceService.delete(id);
}
/**
* 查询某个类型的所有设备
*/
@GetMapping("/{project}/{type}/all")
public List<ProjectDeviceVO> queryByType(@PathVariable String project, @PathVariable ProjectDeviceType type) {
return this.deviceService.queryByType(type, project);
}
/**
* 查询某个类型的所有设备
*/
@GetMapping("/{project}/{type}/all")
public List<ProjectDeviceVO> queryByType(@PathVariable String project,
@PathVariable ProjectDeviceType type) {
return this.deviceService.queryByType(type, project);
}
//
//
// @ApiOperation(value = "查询项目下的所有设备")
// @GetMapping("/project")
// public List<ProjectDeviceVO> queryByProjectCode(String projectCode, String group) {
// return this.iProjectDeviceService.queryByProjectCode(projectCode, group);
// }
@PostMapping("/xty/addOrUpdate")
public void addOrUpdateXtyDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateXtyDeviceConfig(accountVO);
}
@PostMapping("/xty/addOrUpdate")
public void addOrUpdateXtyDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateXtyDeviceConfig(accountVO);
}
@PostMapping("/gzb/addOrUpdate")
public void addOrUpdateGzbDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateGzbDeviceConfig(accountVO);
}
@PostMapping("/gzb/addOrUpdate")
public void addOrUpdateGzbDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateGzbDeviceConfig(accountVO);
}
@PostMapping("/sdy/addOrUpdate")
public void addOrUpdateSdyDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateSdyDeviceConfig(accountVO);
}
@PostMapping("/sdy/addOrUpdate")
public void addOrUpdateSdyDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateSdyDeviceConfig(accountVO);
}
@PostMapping("/zjd/addOrUpdate")
public void addOrUpdateZjdDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateRichorDeviceConfig(accountVO);
}
@PostMapping("/zjd/addOrUpdate")
public void addOrUpdateZjdDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateRichorDeviceConfig(accountVO);
}
@PostMapping("/sr/addOrUpdate/{mapId}")
public void addOrUpdateSrDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO, @PathVariable Long mapId) {
this.deviceService.addOrUpdateSrDeviceConfig(accountVO, mapId);
}
@PostMapping("/sr/addOrUpdate/{mapId}")
public void addOrUpdateSrDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO, @PathVariable Long mapId) {
this.deviceService.addOrUpdateSrDeviceConfig(accountVO, mapId);
}
@PostMapping("/hhcj/addOrUpdate")
public void addOrUpdateHhcjDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateHhcjDeviceConfig(accountVO);
}
@PostMapping("/hhcj/addOrUpdate")
public void addOrUpdateHhcjDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateHhcjDeviceConfig(accountVO);
}
@PostMapping("/say/addOrUpdate")
public void addOrUpdateSayDeviceConfig(@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateSayDeviceConfig(accountVO);
}
@PostMapping("/say/addOrUpdate")
public void addOrUpdateSayDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO) {
this.deviceService.addOrUpdateSayDeviceConfig(accountVO);
}
@PostMapping("/thailand/addOrUpdate/{mapId}")
public void addOrUpdateThailandDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO, @PathVariable Long mapId) {
this.deviceService.addOrUpdateThailandDeviceConfig(accountVO, mapId);
}
@PostMapping("/ngy/addOrUpdate/{mapId}")
public void addOrUpdateNgyDeviceConfig(
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_USER_KEY)
AccountVO accountVO, @PathVariable Long mapId) {
this.deviceService.addOrUpdateNgyDeviceConfig(accountVO, mapId);
}
@PostMapping("/cdgxy/addOrUpdate")
public void addOrUpdateCdgxyDeviceConfig(@RequestAttribute AccountVO user) {
this.deviceService.addOrUpdateCdgxyDeviceConfig(user);
}
}

View File

@ -111,8 +111,8 @@ public class ProjectInfoController {
}
@GetMapping("/check/markKey")
public boolean checkProjectViewMarkKey(String markKey) {
return projectService.checkProjectViewMarkKey(markKey);
public boolean checkProjectViewMarkKey(String markKey, Long id) {
return projectService.checkProjectViewMarkKey(markKey, id);
}
@GetMapping("/simple")

View File

@ -429,4 +429,13 @@ public class MapController {
public List<MapVO> listMapsOfUser(@RequestAttribute LoginUserInfoVO loginInfo) {
return iMapService.listMapsOfUser(loginInfo);
}
/**
* 获取地图配置的客户端信息
* @return 客户端信息
*/
@GetMapping("/{id}/mapClientMap")
public Map<Simulation.Type, List<MapClientVO>> queryMapClientMap(@PathVariable long id) {
return iMapService.queryMapClientMap(id);
}
}

View File

@ -2,160 +2,204 @@ package club.joylink.rtss.controller.publish;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.dao.RtsMapFunctionDAO;
import club.joylink.rtss.services.IMapService;
import club.joylink.rtss.services.mapFunction.RtsMapFunctionService;
import club.joylink.rtss.simulation.cbtc.Simulation;
import club.joylink.rtss.services.mapFunctionTemplate.MapFunctionTemplateService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.mapFunction.*;
import club.joylink.rtss.vo.map.MapVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionBatchModifyVO;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionCreateVO;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionGenerateParamVO;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionGenerateVO;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionQueryVO;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionUpdateVO;
import club.joylink.rtss.vo.client.mapFunction.MapFunctionVO;
import club.joylink.rtss.vo.client.mapFunctionTemplate.MapFunctionTemplateCreateVO;
import club.joylink.rtss.vo.client.mapFunctionTemplate.MapFunctionTemplateQueryVO;
import club.joylink.rtss.vo.client.mapFunctionTemplate.MapFunctionTemplateVO;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 地图功能管理接口
* 地图功能及模板管理接口
*/
@RestController
@RequestMapping("/api/mapFunction")
public class MapFunctionController {
@Autowired
private RtsMapFunctionService rtsMapFunctionService;
/**
* 创建地图功能
*/
@Role(RoleEnum.Admin)
@PostMapping("")
public void create(@RequestBody RtsMapFunctionCreateVO createVO, @RequestAttribute LoginUserInfoVO loginInfo) {
rtsMapFunctionService.create(createVO, loginInfo.getAccountVO().getId());
}
@Autowired
private RtsMapFunctionService rtsMapFunctionService;
/**
* 生成地图功能
*/
@Role(RoleEnum.Admin)
@PostMapping("/{mapId}/generate")
public List<String> generate(@PathVariable long mapId, @RequestBody @Validated RtsMapFunctionGenerateParamVO paramVO,
@RequestAttribute LoginUserInfoVO loginInfo) {
return rtsMapFunctionService.generate(mapId, paramVO, loginInfo.getAccountVO().getId());
}
@Autowired
private MapFunctionTemplateService mapFunctionTemplateService;
/**
* 列表查询地图功能
*/
@GetMapping("/list")
public List<RtsMapFunctionVO> listQuery(RtsMapFunctionQueryVO queryVO) {
return rtsMapFunctionService.listQuery(queryVO);
}
/**
* 创建地图功能
*/
@Role(RoleEnum.Admin)
@PostMapping("")
public void create(@RequestBody MapFunctionCreateVO createVO,
@RequestAttribute LoginUserInfoVO loginInfo) {
rtsMapFunctionService.create(createVO, loginInfo.getAccountVO().getId());
}
/**
* 分页查询地图功能
*/
@GetMapping("/paged")
public PageVO<RtsMapFunctionVO> pagedQuery(RtsMapFunctionQueryVO queryVO) {
return rtsMapFunctionService.pagedQuery(queryVO);
}
/**
* 生成地图功能
*/
@Role(RoleEnum.Admin)
@PostMapping("/{mapId}/generate")
public List<String> generate(@PathVariable long mapId,
@RequestBody @Validated MapFunctionGenerateParamVO paramVO,
@RequestAttribute LoginUserInfoVO loginInfo) {
return rtsMapFunctionService.generate(mapId, paramVO, loginInfo.getAccountVO().getId());
}
/**
* 删除地图功能
*/
@Role(RoleEnum.Admin)
@DeleteMapping("/{id}")
public void delete(@PathVariable long id) {
rtsMapFunctionService.delete(id);
}
/**
* 列表查询地图功能
*/
@GetMapping("/list")
public List<MapFunctionVO> listQuery(MapFunctionQueryVO queryVO) {
return rtsMapFunctionService.listQuery(queryVO);
}
/**
* 批量删除地图功能
*/
@Role(RoleEnum.Admin)
@DeleteMapping("/batch/{mapId}")
public void batchDelete(@PathVariable long mapId) {
rtsMapFunctionService.batchDelete(mapId);
}
/**
* 分页查询地图功能
*/
@GetMapping("/paged")
public PageVO<MapFunctionVO> pagedQuery(MapFunctionQueryVO queryVO) {
return rtsMapFunctionService.pagedQuery(queryVO);
}
/**
* 更新地图功能
*/
@Role(RoleEnum.Admin)
@PutMapping("/{id}")
public void update(@PathVariable long id, @RequestBody RtsMapFunctionUpdateVO updateVO, @RequestAttribute LoginUserInfoVO loginInfo) {
rtsMapFunctionService.update(id, updateVO, loginInfo.getAccountVO().getId());
}
/**
* 删除地图功能
*/
@Role(RoleEnum.Admin)
@DeleteMapping("/{id}")
public void delete(@PathVariable long id) {
rtsMapFunctionService.delete(id);
}
/**
* 根据ID获取地图功能信息
*/
@GetMapping("/{id}")
public RtsMapFunctionVO queryOne(@PathVariable Long id) {
return rtsMapFunctionService.get(id);
}
/**
* 批量删除地图功能
*/
@Role(RoleEnum.Admin)
@DeleteMapping("/batch/{mapId}")
public void batchDelete(@PathVariable long mapId) {
rtsMapFunctionService.batchDelete(mapId);
}
/**
* 更新分组
* @param groupMap k- group v-mapFunctionIds
*/
@PutMapping("/group")
public void updateGroup(@RequestBody Map<String, List<Long>> groupMap,
@RequestAttribute AccountVO user) {
rtsMapFunctionService.updateGroup(groupMap, user.getId());
}
/**
* 更新地图功能
*/
@Role(RoleEnum.Admin)
@PutMapping("/{id}")
public void update(@PathVariable long id, @RequestBody MapFunctionUpdateVO updateVO,
@RequestAttribute LoginUserInfoVO loginInfo) {
rtsMapFunctionService.update(id, updateVO, loginInfo.getAccountVO().getId());
}
/**
* 批量修改描述
*/
@PutMapping("/desc/batch")
public void batchModifyDesc(@RequestBody RtsMapFunctionDescModifyVO vo) {
rtsMapFunctionService.batchModifyDesc(vo);
}
/**
* 根据ID获取地图功能信息
*/
@GetMapping("/{id}")
public MapFunctionVO queryOne(@PathVariable Long id) {
return rtsMapFunctionService.get(id);
}
@Autowired
private IMapService iMapService;
@Autowired
private RtsMapFunctionDAO rtsMapFunctionDAO;
/**
* 更新分组
*
* @param groupMap k- group v-mapFunctionIds
*/
@PutMapping("/group")
public void updateGroup(@RequestBody Map<String, List<Long>> groupMap,
@RequestAttribute AccountVO user) {
rtsMapFunctionService.updateGroup(groupMap, user.getId());
}
/**
* 旧数据处理用完删除
*/
@Transactional(rollbackFor = Exception.class)
@PostMapping("/oldDataHandle")
public List<String> oldDataHandle() {
rtsMapFunctionDAO.deleteByExample(null);
/**
* 跨线路批量修改线路功能
*/
@PutMapping("/crossMap/batch")
public void batchModifyDesc(@RequestBody MapFunctionBatchModifyVO vo) {
rtsMapFunctionService.batchModify(vo);
}
List<MapVO> onlineMaps = iMapService.listOnline();
List<String> msgList = new ArrayList<>();
for (MapVO onlineMap : onlineMaps) {
List<String> list = rtsMapFunctionService.transferOldData(onlineMap.getId());
msgList.addAll(list);
}
return msgList;
}
/**
* 创建线路功能模板
*/
@PostMapping("/template")
public void create(@RequestBody MapFunctionTemplateCreateVO createVO,
@RequestAttribute AccountVO user) {
mapFunctionTemplateService.create(createVO, user.getId());
}
/**
* 为所有在线地图生成功能用完删除
*/
@Transactional
@PostMapping("/generate/all")
public void generateAll(@RequestAttribute LoginUserInfoVO loginInfo) {
for (MapVO mapVO : iMapService.listOnline()) {
MapVO mapDetail = iMapService.getMapDetail(mapVO.getId());
RtsMapFunctionGenerateParamVO paramVO = new RtsMapFunctionGenerateParamVO();
List<Simulation.Type> types = new ArrayList<>();
if (mapDetail.getConfigVO().isRailway()) {
types.add(Simulation.Type.RAILWAY);
} else {
types.add(Simulation.Type.METRO);
}
paramVO.setSimTypes(types);
generate(mapDetail.getId(), paramVO, loginInfo);
}
}
/**
* 列表查询线路功能模板
*/
@GetMapping("/template/list")
public List<MapFunctionTemplateVO> listQuery(MapFunctionTemplateQueryVO queryVO) {
return mapFunctionTemplateService.listQuery(queryVO);
}
/**
* 分页查询线路功能模板
*/
@GetMapping("/template/paged")
public PageVO<MapFunctionTemplateVO> pagedQuery(MapFunctionTemplateQueryVO queryVO) {
return mapFunctionTemplateService.pagedQuery(queryVO);
}
/**
* 更新线路功能模板
*/
@PutMapping("/template/{id}")
public MapFunctionTemplateVO update(@PathVariable long id,
@RequestBody MapFunctionTemplateCreateVO createVO,
@RequestAttribute AccountVO user) {
return mapFunctionTemplateService.update(id, createVO, user.getId());
}
/**
* 删除线路功能模板
*/
@DeleteMapping("/template/{id}")
public void deleteTemplate(@PathVariable long id) {
mapFunctionTemplateService.delete(id);
}
/**
* 根据模板生成地图功能
*
* @return 生成过程中的特殊情况日志
*/
@PostMapping("/generate/from/template")
public List<String> generateFromTemplate(@RequestBody MapFunctionGenerateVO vo,
@RequestAttribute AccountVO user) {
return rtsMapFunctionService.generateFromTemplate(vo, user.getId());
}
/**
* 根据地图原有的线路功能信息生成新的线路功能信息模板与当前数据名称匹配
*
* @param mapIds 地图ID列表
* @param user 登录用户信息
* @return 没有生成信息记录方便用户自定义操作
*/
@PostMapping("/generate/mapIds")
public List<String> generateFunByOldData(@RequestBody List<Long> mapIds,
@RequestAttribute AccountVO user) {
return rtsMapFunctionService.generateFunByOldData(mapIds, user);
}
}

View File

@ -0,0 +1,91 @@
package club.joylink.rtss.controller.racetr;
import club.joylink.rtss.services.race.RaceApplicationService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.paper.PaperTrainAnswerDetail;
import club.joylink.rtss.vo.race.RaceApplication;
import club.joylink.rtss.vo.race.RaceTask;
import club.joylink.rtss.vo.race.RaceTaskFinishParamDTO;
import java.util.List;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 赛题训练接口
*/
@RestController
@RequestMapping("/api/race")
@AllArgsConstructor
public class RaceApplicationController {
private RaceApplicationService raceApplicationService;
/**
* 开始训练
* <p>
* 目前用用户id作为训练上下文的ID即用户同时进行一个训练
*
* @param paperId 赛题ID
* @return 训练的信息
*/
@PostMapping("/{paperId}/{moduleId}")
public RaceTask.RacePaperSingleModuleGroupTask start(@PathVariable long paperId,
@PathVariable int moduleId, @RequestAttribute AccountVO user) {
return raceApplicationService.start(paperId, moduleId, user.getId());
}
/**
* 加载场景
*
* @param simulationId 场景依托的仿真
* @param sceneId 场景的ID
*/
@PutMapping("/{simulationId}/load/{sceneId}")
public void loadScene(@PathVariable String simulationId, @PathVariable long sceneId,
@RequestAttribute LoginUserInfoVO loginInfo) {
raceApplicationService.loadScene(simulationId, sceneId, loginInfo);
}
/**
* 完成任务
*
* @param taskId 任务ID
* @param paramDTO 完成任务所需的参数主要就是需要前端做判定的操作/步骤
* @return
*/
@PutMapping("/{taskId}/finish")
public List<PaperTrainAnswerDetail> finishTask(@PathVariable long taskId,
@RequestBody RaceTaskFinishParamDTO paramDTO, @RequestAttribute AccountVO user) {
return raceApplicationService.finishTask(taskId, paramDTO, user);
}
/**
* 完成训练
*
* @return 评分结果
*/
@PutMapping("/finish")
public RaceApplication.RacePracticeResult finish(@RequestAttribute AccountVO user) {
return raceApplicationService.finish(user.getId());
}
// /**
// * 获取用户正在进行的竞赛信息
// * <p>
// * 目前想到的使用场景就是页面刷新后
// *
// * @return 竞赛信息
// */
// @GetMapping("")
// public Object getRaceInfo() {
// return null;
// }
}

View File

@ -0,0 +1,145 @@
package club.joylink.rtss.controller.racetr;
import club.joylink.rtss.exception.BusinessExceptionAssertEnum;
import club.joylink.rtss.services.paper.PagerQuestionService;
import club.joylink.rtss.services.race.RacePaperService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.race.RacePaper.RacePaperCreateVO;
import club.joylink.rtss.vo.race.RacePaper.RacePaperDetailVO;
import club.joylink.rtss.vo.race.RacePaper.RacePaperMenuVO;
import club.joylink.rtss.vo.race.RacePaper.RacePaperModuleVO;
import club.joylink.rtss.vo.race.RacePaper.RacePaperVO;
import club.joylink.rtss.vo.race.RacePaperQueryVO;
import club.joylink.rtss.vo.race.RaceTask.RacePaperSingleModuleGroupTask;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 竞赛-试题管理
*/
@RestController
@RequestMapping("/api/exercise/race/paper")
public class RacePaperController {
@Autowired
private RacePaperService racePaperService;
@Autowired
private PagerQuestionService questionService;
@GetMapping("/questions")
public List<Long> queryQuestionFromPBank() {
return this.questionService.queryAllDefaultOrgPaperIds();
}
/**
* 创建试卷
*/
@PostMapping()
public void save(@RequestBody RacePaperCreateVO createVO, @RequestAttribute AccountVO user) {
racePaperService.create(createVO, user);
}
/**
* 更新试卷内容
*
* @param id
* @param updateVO
* @param user
*/
@PostMapping("/{id}")
public void update(@PathVariable("id") Long id, @RequestBody RacePaperCreateVO updateVO,
@RequestAttribute AccountVO user) {
this.racePaperService.update(id, updateVO, user);
}
/**
* 分页查询
*/
@GetMapping("/page")
public PageVO<RacePaperVO> pageQuery(RacePaperQueryVO queryVO) {
return racePaperService.pageQuery(queryVO);
}
/**
* 获取赛季试卷菜单
*
* @param queryVO
* @return
*/
@GetMapping("/menu")
public RacePaperMenuVO pageMenu(RacePaperQueryVO queryVO) {
return this.racePaperService.pageMenuQuery(queryVO);
}
/**
* 试卷配置
*
* @param id
* @param moduleVO
* @param user
*/
@PostMapping("/{id}/config")
public void configSeting(@PathVariable("id") Long id, @RequestBody RacePaperModuleVO moduleVO,
@RequestAttribute AccountVO user) {
this.racePaperService.configSeting(id, moduleVO, user);
}
/**
* 获取明细
*
* @param id
* @return
*/
@GetMapping("/{id}")
public RacePaperDetailVO detail(@PathVariable("id") Long id) {
return this.racePaperService.detail(id);
}
/**
* 拷贝功能
*
* @param id
* @param user
*/
@PutMapping("/{id}/copy")
public void copy(@PathVariable("id") Long id, @RequestAttribute AccountVO user) {
this.racePaperService.copy(id, user);
}
/**
* 删除
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable("id") Long id) {
BusinessExceptionAssertEnum.ARGUMENT_ILLEGAL.assertNotNull(id);
racePaperService.delete(id);
}
/**
* 获取试卷对应模块的模块任务树
*
* @param id
* @param moduleId
* @return
*/
@GetMapping("/{paperId}/module/{moduleId}/task")
public RacePaperSingleModuleGroupTask paperModuleTask(@PathVariable("paperId") Long id,
@PathVariable("moduleId") Integer moduleId) {
return this.racePaperService.singlePaperModuleTask(id, moduleId);
}
}

View File

@ -0,0 +1,85 @@
package club.joylink.rtss.controller.racetr;
import club.joylink.rtss.services.race.RaceSceneService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.race.RaceSceneOuterClass.RaceSceneListVO;
import club.joylink.rtss.vo.race.RaceSceneOuterClass.RaceScenePublishVO;
import club.joylink.rtss.vo.race.RaceSceneOuterClass.RaceSceneVO;
import club.joylink.rtss.vo.race.RaceSceneOuterClass.SceneCustomCreateVO;
import club.joylink.rtss.vo.race.RaceSceneQueryVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 竞赛-场景管理-发布的管理
*/
@RestController
@RequestMapping("/api/exercise/race/scene")
public class RaceSceneController {
@Autowired
private RaceSceneService sceneService;
@PostMapping("/custom/edit")
public void customSave(@RequestBody SceneCustomCreateVO vo, @RequestAttribute AccountVO user) {
this.sceneService.customSave(vo, user);
}
@PostMapping("/custom/{id}/edit")
public void customUpdate(@PathVariable("id") Long id, @RequestBody SceneCustomCreateVO vo, @RequestAttribute AccountVO user) {
this.sceneService.customUpdate(id, vo, user);
}
/**
* 草稿实训发布到场景
*
* @param vo
* @param user
*/
@PostMapping("/publish/training")
public void publishHere(@RequestBody RaceScenePublishVO vo, @RequestAttribute AccountVO user) {
this.sceneService.publishHere(vo, user);
}
/**
* 获取明细
*
* @param id
* @return
*/
@GetMapping("/{id}")
public RaceSceneVO detail(@PathVariable("id") Long id) {
return this.sceneService.detail(id);
}
/**
* 分页
*
* @param query
* @return
*/
@GetMapping("/page")
public PageVO<RaceSceneListVO> page(RaceSceneQueryVO query) {
return this.sceneService.page(query);
}
/**
* 删除
*
* @param id
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable("id") Long id) {
this.sceneService.delete(id);
}
}

View File

@ -0,0 +1,88 @@
package club.joylink.rtss.controller.racetr;
import club.joylink.rtss.services.race.RaceScoreRuleService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.race.RaceScoringRule.RaceScoringRuleListVO;
import club.joylink.rtss.vo.race.RaceScoringRule.RaceScoringRuleVO;
import club.joylink.rtss.vo.race.RaceScoringRule.Rule;
import club.joylink.rtss.vo.race.TaskRuleQueryVO;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 竞赛-评分
*/
@RestController
@RequestMapping("/api/exercise/race/score")
public class RaceScoreRuleController {
@Autowired
private RaceScoreRuleService scoreRuleService;
/**
* 1.创建基础信息
*
* @param nameMap
* @param user
*/
@PostMapping
public void saveBasic(@RequestBody Map<String, String> nameMap, @RequestAttribute AccountVO user) {
this.scoreRuleService.saveBasic(nameMap.get("name"), user);
}
/**
* 评分配置
*
* @param ruleId
* @param rule
* @param user
*/
@PostMapping("/edit/rule/{ruleId}")
public void editRule(@PathVariable("ruleId") Long ruleId, @RequestBody Rule rule, @RequestAttribute AccountVO user) {
this.scoreRuleService.editRule(ruleId, rule, user);
}
/**
* 明细
*
* @param id
* @return
*/
@GetMapping(value = "/{id}")
public RaceScoringRuleVO detail(@PathVariable("id") Long id) {
return this.scoreRuleService.detail(id);
}
/**
* 分页
*
* @param query
* @return
*/
@GetMapping("/page")
public PageVO<RaceScoringRuleListVO> page(TaskRuleQueryVO query) {
return this.scoreRuleService.page(query);
}
/**
* 删除
*
* @param id
*/
@DeleteMapping("{id}")
public void delete(@PathVariable("id") Long id) {
this.scoreRuleService.delete(id);
}
}

View File

@ -0,0 +1,102 @@
package club.joylink.rtss.controller.racetr;
import club.joylink.rtss.services.race.RaceSeasonService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.race.RaceSeasonOuterClass.RaceSeasonCreateVO;
import club.joylink.rtss.vo.race.RaceSeasonOuterClass.RaceSeasonVO;
import club.joylink.rtss.vo.race.RaceSeasonQueryVO;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 竞赛-赛季管理
*/
@RestController
@RequestMapping("/api/exercise/race/season")
public class RaceSeasonController {
@Autowired
private RaceSeasonService raceSeasonService;
/**
* 添加
*
* @param dto
* @param user
*/
@PostMapping
public void save(@RequestBody RaceSeasonCreateVO dto, @RequestAttribute AccountVO user) {
this.raceSeasonService.save(dto, user);
}
/**
* 修改
*
* @param id
* @param dto
* @param user
*/
@PostMapping("/{id}")
public void update(@PathVariable("id") Long id, @RequestBody RaceSeasonCreateVO dto, @RequestAttribute AccountVO user) {
this.raceSeasonService.update(id, dto, user);
}
/**
* 编辑html内容
*
* @param id
* @param user
*/
@PostMapping("/{id}/html")
public void updateHtmlContent(@PathVariable("id") Long id, @RequestBody Map<String, String> contentMap, @RequestAttribute AccountVO user) {
String content = contentMap.get("htmlContent");
this.raceSeasonService.updateHtmlContent(id, content, user);
}
/**
* 查找对应的html content
*
* @param id
* @return
*/
@GetMapping("/{id}/html")
public Map<String, String> queryHtmlContent(@PathVariable("id") Long id) {
String html = this.raceSeasonService.queryHtmlContent(id);
return Map.of("html", StringUtils.hasText(html) ? html : "");
}
/**
* 查找
*
* @param query
* @return
*/
@GetMapping(value = "/page")
public PageVO<RaceSeasonVO> page(RaceSeasonQueryVO query) {
return raceSeasonService.page(query);
}
/**
* 删除
*
* @param id
*/
//绑定过的数据不能删除没有绑定的可以删除物理删除
@DeleteMapping("/{id}")
public void delete(@PathVariable("id") Long id) {
this.raceSeasonService.delete(id);
}
}

View File

@ -0,0 +1,94 @@
package club.joylink.rtss.controller.racetr;
import club.joylink.rtss.services.race.RaceTaskService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.race.RaceTask.RaceTaskBind;
import club.joylink.rtss.vo.race.RaceTask.RaceTaskCreateVO;
import club.joylink.rtss.vo.race.RaceTask.RaceTaskDetailVO;
import club.joylink.rtss.vo.race.RaceTaskTreeVO;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/api/exercise/race/task")
public class RaceTaskController {
@Autowired
private RaceTaskService taskService;
/**
* 创建任务并绑定对应的发布场景
*
* @param vo
* @param user
*/
@PostMapping
public void save(@RequestBody RaceTaskCreateVO vo, @RequestAttribute AccountVO user) {
this.taskService.save(vo, user);
}
@PostMapping("/{id}")
public void update(@PathVariable("id") Long id, @RequestBody RaceTaskCreateVO vo,
@RequestAttribute AccountVO user) {
this.taskService.update(id, vo, user);
}
@PostMapping("/{taskId}/bind")
public void bind(@PathVariable("taskId") Long taskId, @RequestBody List<RaceTaskBind> bind,
@RequestAttribute AccountVO user) {
this.taskService.bind(taskId, bind, user);
}
/**
* 返回任务数据以""的结构
*
* @return
*/
@GetMapping("/tree")
public List<RaceTaskTreeVO> tree() {
return this.taskService.tree();
}
/**
* 删除
*
* @param id
*/
@DeleteMapping("/{id}")
public void delete(@PathVariable("id") Long id) {
this.taskService.delete(id);
}
/**
* 获取一个节点下的所有数据
*
* @param id
* @return
*/
@GetMapping("/{id}/children")
public List<RaceTaskTreeVO> childList(@PathVariable("id") Long id) {
return this.taskService.findChildren(id);
}
/**
* 获取一个节点的明细
*
* @param id
* @return
*/
@GetMapping("/{id}")
public RaceTaskDetailVO detail(@PathVariable("id") Long id) {
return this.taskService.detail(id);
}
}

View File

@ -2,8 +2,10 @@ package club.joylink.rtss.controller.simulation;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.simulation.cbtc.conversation.CommunicationObject;
import club.joylink.rtss.simulation.cbtc.conversation.ConversationGroupHandlerService;
import club.joylink.rtss.simulation.cbtc.conversation.ConversationManagerService;
import club.joylink.rtss.simulation.cbtc.conversation.ConversationText;
import club.joylink.rtss.simulation.cbtc.data.vo.ConversationGroupVO;
import club.joylink.rtss.simulation.cbtc.data.vo.ConversationVO;
import club.joylink.rtss.vo.AccountVO;
import org.springframework.beans.factory.annotation.Autowired;
@ -22,6 +24,9 @@ public class SimulationConversationController {
@Autowired
private ConversationManagerService conversationManagerService;
@Autowired
private ConversationGroupHandlerService conversationGroupHandlerService;
/**
*根据会话id获取仿真会话
*/
@ -100,4 +105,14 @@ public class SimulationConversationController {
this.conversationManagerService.textChat(group, id, text, user);
}
/**
* 获取本仿真的用户群组信息
*
* @param group 仿真ID
* @return 用户群组
*/
@GetMapping("/group/list")
public List<ConversationGroupVO> groupList(@PathVariable String group, @RequestAttribute AccountVO user) {
return conversationGroupHandlerService.getAllConversationsGroup(group, user);
}
}

View File

@ -70,7 +70,8 @@ public class SimulationTrainingV2Controller {
* 结束实训
*/
@PutMapping("/{group}/finish")
public Double finishTraining2(@PathVariable String group, @RequestAttribute AccountVO user, @RequestBody List<PaperTrainAnswerDetail> scoreList) {
public List<PaperTrainAnswerDetail> finishTraining2(@PathVariable String group, @RequestAttribute AccountVO user
, @RequestBody List<PaperTrainAnswerDetail> scoreList) {
return training2Service.finishTraining2(group, user, scoreList);
}
@ -86,8 +87,8 @@ public class SimulationTrainingV2Controller {
* 客户端步骤完成后操作回调
*/
@PutMapping("/{group}/completion/step/{stepId}/operation/{id}")
public Integer completionClientStepOperation(@PathVariable String group, @PathVariable Integer stepId
, @PathVariable Integer id, @RequestAttribute AccountVO user) {
public Integer completionClientStepOperation(@PathVariable String group, @PathVariable Long stepId
, @PathVariable Long id, @RequestAttribute AccountVO user) {
return training2Service.completionClientStepOperation(group, stepId, id, user);
}
@ -98,4 +99,24 @@ public class SimulationTrainingV2Controller {
public void drawTraining(@PathVariable String group, @PathVariable Long trainingId) {
training2Service.drawTraining(group, trainingId);
}
/**
* 加载实训到第{stepId}
* @param group 仿真ID
* @param stepId 步数ID
*/
@PutMapping("/{group}/jumpTo/{stepId}")
public void jumpToStep(@PathVariable String group, @PathVariable Long stepId){
training2Service.jumpToStep(group, stepId);
}
/**
* 实训开始准备给实训参与人员发送准备开始执行
* @param group 仿真ID
* @param user 操作人
*/
@PostMapping("/{group}/prepare/start")
public void prepareStart(@PathVariable String group, @RequestAttribute AccountVO user, ScriptBO.Mode mode) {
training2Service.prepareStart(group, user, mode);
}
}

View File

@ -8,13 +8,12 @@ import club.joylink.rtss.services.training.ITrainingV1Service;
import club.joylink.rtss.services.training.data.GenerateConfig;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.training.TrainingNewVO;
import club.joylink.rtss.vo.client.training.TrainingQueryVO;
import club.joylink.rtss.vo.client.training.TrainingStepVO;
import club.joylink.rtss.vo.client.trainingUsage.UserTrainingListVO;
import club.joylink.rtss.vo.client.trainingUsage.UserTrainingQueryVO;
import club.joylink.rtss.vo.client.trainingUsage.UserTrainingVO;
import club.joylink.rtss.vo.client.training.TrainingNewVO;
import club.joylink.rtss.vo.client.training.TrainingQueryVO;
import club.joylink.rtss.vo.client.training.TrainingResultVO;
import club.joylink.rtss.vo.client.training.TrainingStepVO;
import club.joylink.rtss.vo.client.validGroup.DraftTrainingCreateCheck;
import club.joylink.rtss.vo.client.validGroup.DraftTrainingStepCheck;
import club.joylink.rtss.vo.client.validGroup.GenerateConfigDeleteCheck;
@ -22,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.validation.constraints.NotBlank;
import java.util.Map;
import java.util.Set;
@ -113,28 +111,6 @@ public class TrainingV1Controller {
this.iTrainingService.nextStep(id, group, step);
}
/**
*实训结束
*/
@GetMapping(path="/{lessonId}/{id}/end")
public TrainingResultVO trainingEnd(@PathVariable Long lessonId, @PathVariable Long id, String group,
@NotBlank String mode, @NotBlank String usedTime,
@RequestAttribute AccountVO user) {
return this.iTrainingService.trainingEnd(lessonId, id, group, mode, usedTime, user);
}
// @ApiOperation(value = "清除实训数据")
// @DeleteMapping(path = "/{id}")
// public void clear(@PathVariable Long id) {
// this.iTrainingService.clear(id);
// }
// @ApiOperation(value = "删除实训")
// @DeleteMapping(path = "/{trainingId}")
// public void delTraining(@PathVariable String trainingId, @RequestAttribute UserVO user) {
// iTrainingService.delTraining(trainingId, user);
// }
/**
*分页查询实训
*/
@ -143,12 +119,6 @@ public class TrainingV1Controller {
return this.iTrainingService.pagedQueryTrainings(queryVO);
}
// @ApiOperation(value = "自动生成实训")
// @PostMapping(path = "/generate")
// public void generateTrainingTask(@RequestBody @Validated(GenerateConfigCheck.class) GenerateConfig config) {
// this.generateTask.execute(config);
// }
/**
*一键生成地图实训生成中返回true
*/

View File

@ -82,4 +82,12 @@ public class TrainingRuleController {
return training2RuleService.generateTrainingByMapIdAndRuleId(mapRuleIdMap, loginUserInfoVO);
}
/**
* 填充默认打分规则
*/
@PostMapping("fill/scoreRule")
public void fillDefaultScoreRule() {
training2RuleService.updateScoreRule();
}
}

View File

@ -1,18 +1,38 @@
package club.joylink.rtss.controller.training2;
import club.joylink.rtss.constants.BusinessConsts;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.entity.training2.ExportTraining2;
import club.joylink.rtss.entity.training2.PublishedTraining2;
import club.joylink.rtss.services.training2.Training2DraftPublishService;
import club.joylink.rtss.services.training2.Training2PublishService;
import club.joylink.rtss.services.training2.Training2TypeEnum;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.training2.publish.*;
import club.joylink.rtss.vo.training2.publish.DeletePublishedTraining2ReqVo;
import club.joylink.rtss.vo.training2.publish.DeletePublishedTraining2RspVo;
import club.joylink.rtss.vo.training2.publish.PublishedTraining2DetailRspVo;
import club.joylink.rtss.vo.training2.publish.PublishedTraining2InfoPageReqVo;
import club.joylink.rtss.vo.training2.publish.PublishedTraining2InfoRspVo;
import club.joylink.rtss.vo.training2.publish.PublishedTrainingListRspVo;
import club.joylink.rtss.vo.training2.publish.PullOffPublishedTraining2ReqVo;
import club.joylink.rtss.vo.training2.publish.PullOffPublishedTraining2RspVo;
import club.joylink.rtss.vo.training2.publish.PutOnPublishedTraining2ReqVo;
import club.joylink.rtss.vo.training2.publish.PutOnPublishedTraining2RspVo;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 已发布实训管理接口
@ -21,76 +41,171 @@ import java.util.List;
@RestController
@RequestMapping("/api/v2/training/published")
public class TrainingV2PublishController {
@Autowired
private Training2PublishService publishService;
/**
* 已发布实训分页列表
*/
@PostMapping("/page")
public PageVO<PublishedTraining2InfoRspVo> publishedTrainingsPage(@RequestBody PublishedTraining2InfoPageReqVo req){
return this.publishService.publishedTrainingsPage(req);
}
/**
* 已发布实训上架
*/
@PostMapping("/put/on")
public PutOnPublishedTraining2RspVo putOnPublishedTrainings(@RequestBody PutOnPublishedTraining2ReqVo req){
return this.publishService.putOnPublishedTrainings(req);
}
/**
* 已发布实训下架
*/
@PostMapping("/pull/off")
public PullOffPublishedTraining2RspVo pullOffPublishedTrainings(@RequestBody PullOffPublishedTraining2ReqVo req){
return this.publishService.pullOffPublishedTrainings(req);
}
/**
* 删除已发布实训
*/
@DeleteMapping
public DeletePublishedTraining2RspVo deletePublishedTrainings(@RequestBody DeletePublishedTraining2ReqVo req){
return this.publishService.deletePublishedTrainings(req);
}
@Autowired
private Training2PublishService publishService;
@Autowired
private Training2DraftPublishService training2DraftPublishService;
/**
* 已发布实训分页列表
*/
@PostMapping("/page")
public PageVO<PublishedTraining2InfoRspVo> publishedTrainingsPage(
@RequestBody PublishedTraining2InfoPageReqVo req) {
return this.publishService.publishedTrainingsPage(req);
}
/**
* 已发布实训上架
*/
@PostMapping("/put/on")
public PutOnPublishedTraining2RspVo putOnPublishedTrainings(
@RequestBody PutOnPublishedTraining2ReqVo req,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
return this.publishService.putOnPublishedTrainings(req, userInfoVO);
}
/**
* 已发布实训下架
*/
@PostMapping("/pull/off")
public PullOffPublishedTraining2RspVo pullOffPublishedTrainings(
@RequestBody PullOffPublishedTraining2ReqVo req,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
return this.publishService.pullOffPublishedTrainings(req, userInfoVO);
}
/**
* 变更共享状态
*
* @param id
* @param shared
* @param userInfoVO
*/
@GetMapping("/{id}/{shared}")
public void changeSharedStatus(@PathVariable(name = "id") Long id,
@PathVariable(name = "shared") Integer shared,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
this.publishService.changeSharedStatus(id, shared, userInfoVO);
}
/**
* 删除已发布实训
*/
@DeleteMapping
public DeletePublishedTraining2RspVo deletePublishedTrainings(
@RequestBody DeletePublishedTraining2ReqVo req,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
return this.publishService.deletePublishedTrainings(req, userInfoVO);
}
/**
* 实训查询用户管理
* @param vo
* @return
*/
@PostMapping("/manage/infos")
public PageVO<PublishedTraining2InfoRspVo> findTrainingListManageInfosForPage(@RequestBody PublishedTrainingListRspVo vo){
return this.publishService.findTrainingInfoForPage(vo);
}
/**
* 实训查询用户管理
*
* @param vo
* @return
*/
@PostMapping("/manage/infos")
public PageVO<PublishedTraining2InfoRspVo> findTrainingListManageInfosForPage(
@RequestBody PublishedTrainingListRspVo vo,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
vo.setOrgId(userInfoVO.getTopOrgId());
return this.publishService.findTrainingInfoForPage(vo, userInfoVO, true);
}
/**
* 实训查询
* @param vo
* @return
*/
@PostMapping("/infos")
public List<PublishedTraining2InfoRspVo> findTrainingListInfos(@RequestBody PublishedTrainingListRspVo vo
,@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO){
//只查询以上架
vo.setState(1);
vo.setOrgId(loginUserInfoVO.getTopOrgId());
return this.publishService.findTrainingInfo(vo);
}
/**
* 查所有的已发布场景实训的基础信息
*/
@Role(value = RoleEnum.SuperAdmin)
@GetMapping("/list")
public PageVO<PublishedTraining2InfoRspVo> findTrainingList(@ModelAttribute PublishedTrainingListRspVo vo){
return this.publishService.findTrainingInfoForPage(vo);
}
/**
* 实训查询
*
* @param vo
* @return
*/
@PostMapping("/infos")
public List<PublishedTraining2InfoRspVo> findTrainingListInfos(
@RequestBody PublishedTrainingListRspVo vo,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO loginUserInfoVO) {
//只查询以上架
vo.setState(BusinessConsts.STATUS_USE_INT);
vo.setOrgId(loginUserInfoVO.getTopOrgId());
return this.publishService.findTrainingInfo(vo, loginUserInfoVO);
}
/**
* 根据实训id查该已发布实训的所有信息
*/
@GetMapping("/{trainingId}")
public PublishedTraining2DetailRspVo findTrainingAllInfo(@PathVariable("trainingId") Long trainingId){
return this.publishService.findTrainingAllInfoById(trainingId);
}
/**
* 查所有的已发布场景实训的基础信息
*/
@Role(value = RoleEnum.SuperAdmin)
@GetMapping("/list")
public PageVO<PublishedTraining2InfoRspVo> findTrainingList(
@ModelAttribute PublishedTrainingListRspVo vo,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
return this.publishService.findTrainingInfoForPage(vo, userInfoVO, false);
}
/**
* 根据实训id查该已发布实训的所有信息
*/
@GetMapping("/{trainingId}")
public PublishedTraining2DetailRspVo findTrainingAllInfo(
@PathVariable("trainingId") Long trainingId) {
return this.publishService.findTrainingAllInfoById(trainingId);
}
/**
* 更新实训label
*/
@PutMapping("/update/label")
public void updateTrainingLabel(@RequestBody PublishedTraining2 training2) {
publishService.updateTrainingLabel(training2);
}
/**
* 更新发布实训信息
*/
@PutMapping("/update")
public void updateTraining(@RequestBody PublishedTraining2 training2) {
publishService.updateTrainingBaseInfo(training2);
}
/**
* 批量更新实训label
*/
@PutMapping("/update/batch/label")
public void updateTrainingLabelList(
@RequestBody List<PublishedTraining2> publishedTraining2List) {
publishService.updateTrainingLabelList(publishedTraining2List);
}
/**
* 导出所选实训
*
* @param tidList 实训ID列表
* @return 实训详情信息
*/
@PostMapping("/export")
public List<ExportTraining2> exportTraining(@RequestBody List<Long> tidList) {
return publishService.exportTraining(tidList);
}
/**
* 导入实训信息
*
* @return 导入结果
*/
@PostMapping("/import")
public List<String> importTraining(@RequestBody List<ExportTraining2> trainingList,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
return publishService.importTraining(trainingList, userInfoVO);
}
/**
* 保存为草稿
*/
@PostMapping("/{trainingId}/saveAsDraft")
public void saveAsDraft(@PathVariable("trainingId") Long trainingId,
@RequestAttribute(AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
training2DraftPublishService.saveAsDraft(trainingId, userInfoVO);
}
}

View File

@ -4,15 +4,25 @@ import club.joylink.rtss.services.ISysUserService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.UserQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.user.*;
import club.joylink.rtss.vo.client.user.MobileInfoVO;
import club.joylink.rtss.vo.client.user.RetrievePwdVO;
import club.joylink.rtss.vo.client.user.UpdateEmailVO;
import club.joylink.rtss.vo.client.user.UpdateMobileVO;
import club.joylink.rtss.vo.client.user.UpdatePasswordVO;
import club.joylink.rtss.vo.user.AccountCreateVO;
import club.joylink.rtss.vo.user.AccountRegisterVO;
import club.joylink.rtss.vo.user.UserRegisterCheck;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* 系统账户接口
@ -21,165 +31,186 @@ import java.util.List;
@RequestMapping("/api/userinfo")
public class SysAccountController {
@Autowired
private ISysUserService iSysUserService;
@Autowired
private ISysUserService iSysUserService;
@PostMapping("/register")
public void register(@RequestBody @Validated(value = UserRegisterCheck.class) AccountCreateVO accountCreateVO) {
this.iSysUserService.register(accountCreateVO);
}
@PostMapping("/register")
public void register(
@RequestBody @Validated(value = UserRegisterCheck.class) AccountCreateVO accountCreateVO) {
this.iSysUserService.register(accountCreateVO);
}
/**
* 新注册接口
*/
@PostMapping("/register2")
public void register2(@RequestBody @Validated AccountRegisterVO registerVO) {
this.iSysUserService.register2(registerVO);
}
/**
* 新注册接口
*/
@PostMapping("/register2")
public void register2(@RequestBody @Validated AccountRegisterVO registerVO) {
this.iSysUserService.register2(registerVO);
}
/**
*根据姓名或电话号查询用户
*/
@GetMapping(path="/nameOrMobile")
public List<AccountVO> queryUserByNameOrMobile(String query) {
List<AccountVO> list = this.iSysUserService.queryUserByNameOrMobile(query);
return list;
}
/**
* 根据姓名或电话号查询用户
*/
@GetMapping(path = "/nameOrMobile")
public List<AccountVO> queryUserByNameOrMobile(String query) {
List<AccountVO> list = this.iSysUserService.queryUserByNameOrMobile(query);
return list;
}
/**
* 手机号是否已经注册
*/
@GetMapping("/isExist/mobile")
public boolean isMobileExist(String mobile) {
return iSysUserService.isSameMobileExist(mobile);
}
/**
* 手机号是否已经注册
*/
@GetMapping("/isExist/mobile")
public boolean isMobileExist(String mobile) {
return iSysUserService.isSameMobileExist(mobile);
}
/**
* 邮箱是否已经注册
*/
@GetMapping("/isExist/email")
public boolean isEmailExist(String email) {
return iSysUserService.isSameEmailExist(email);
}
/**
* 邮箱是否已经注册
*/
@GetMapping("/isExist/email")
public boolean isEmailExist(String email) {
return iSysUserService.isSameEmailExist(email);
}
/**
*根据用户id获取用户信息
*/
@GetMapping(path = "/{id}")
public AccountVO getUserBaseInfoById(@PathVariable Long id) {
return this.iSysUserService.getUserBaseInfoById(id);
}
/**
* 根据用户id获取用户信息
*/
@GetMapping(path = "/{id}")
public AccountVO getUserBaseInfoById(@PathVariable Long id) {
return this.iSysUserService.getUserBaseInfoById(id);
}
/**
*修改用户信息
*/
@PutMapping(path = "/{id}")
public void modify(@PathVariable Long id, @RequestBody AccountVO userInfo, String vdcode) {
this.iSysUserService.modify(id, userInfo, vdcode);
}
/**
* 修改用户信息
*/
@PutMapping(path = "/{id}")
public void modify(@PathVariable Long id, @RequestBody AccountVO userInfo, String vdcode) {
this.iSysUserService.modify(id, userInfo, vdcode);
}
/**
*微信关注事件
*/
@GetMapping(path = "/wxsubscribe")
public void wxSubscribe(@RequestParam String wxId) {
iSysUserService.wxSubscribeEventHandle(wxId);
}
/**
* 微信关注事件
*/
@GetMapping(path = "/wxsubscribe")
public void wxSubscribe(@RequestParam String wxId) {
iSysUserService.wxSubscribeEventHandle(wxId);
}
/**
*批量修改用户的openId为unionId
*/
@PutMapping(path = "/batchchange/unionid")
public void batchChangeOpenId2UnionId() {
this.iSysUserService.batchChangeOpenId2UnionId();
}
/**
* 批量修改用户的openId为unionId
*/
@PutMapping(path = "/batchchange/unionid")
public void batchChangeOpenId2UnionId() {
this.iSysUserService.batchChangeOpenId2UnionId();
}
/**
*更新用户真实姓名
*/
@PutMapping(path = "/{id}/name")
public void updateName(@PathVariable Long id, String name) {
this.iSysUserService.updateUserName(id, name);
}
/**
* 更新用户真实姓名
*/
@PutMapping(path = "/{id}/name")
public void updateName(@PathVariable Long id, String name) {
this.iSysUserService.updateUserName(id, name);
}
/**
*更新用户昵称
*/
@PutMapping(path = "/{id}/nickname")
public void updateNickname(@PathVariable Long id, String nickname) {
this.iSysUserService.updateNickname(id, nickname);
}
/**
* 更新用户昵称
*/
@PutMapping(path = "/{id}/nickname")
public void updateNickname(@PathVariable Long id, String nickname) {
this.iSysUserService.updateNickname(id, nickname);
}
/**
*用户上传头像
*/
@PostMapping(path = "/{id}/avatar")
public void uploadAvatar(@PathVariable Long id, @RequestBody AccountVO accountVO) {
this.iSysUserService.updateAvatar(id, accountVO.getAvatarPath());
}
/**
* 用户上传头像
*/
@PostMapping(path = "/{id}/avatar")
public void uploadAvatar(@PathVariable Long id, @RequestBody AccountVO accountVO) {
this.iSysUserService.updateAvatar(id, accountVO.getAvatarPath());
}
/**
*发送手机验证码
*/
@PostMapping(path = "/mobile/code")
public String sendMobileValidCode(@RequestBody MobileInfoVO mobileInfoVO) {
return this.iSysUserService.sendMobileValidCode(mobileInfoVO);
}
/**
* 发送手机验证码
*/
@PostMapping(path = "/mobile/code")
public String sendMobileValidCode(@RequestBody MobileInfoVO mobileInfoVO) {
return this.iSysUserService.sendMobileValidCode(mobileInfoVO);
}
/**
*发送邮箱验证码
*/
@PostMapping(path = "/email/code")
public String sendEmailValidCode(String email) {
return this.iSysUserService.sendEmailValidCode(email);
}
/**
* 发送邮箱验证码
*/
@PostMapping(path = "/email/code")
public String sendEmailValidCode(String email) {
return this.iSysUserService.sendEmailValidCode(email);
}
/**
*更新用户手机号
*/
@PutMapping(path = "/{id}/mobile")
public void updateMobile(@PathVariable Long id, @RequestBody @Validated UpdateMobileVO updateMobileVO) {
this.iSysUserService.updateMobile(id, updateMobileVO);
}
/**
* 更新用户手机号
*/
@PutMapping(path = "/{id}/mobile")
public void updateMobile(@PathVariable Long id,
@RequestBody @Validated UpdateMobileVO updateMobileVO) {
this.iSysUserService.updateMobile(id, updateMobileVO);
}
/**
*更新用户邮箱
*/
@PutMapping(path = "/{id}/email")
public void updateEmail(@PathVariable Long id, @RequestBody @Validated UpdateEmailVO updateEmailVO) {
this.iSysUserService.updateEmail(id, updateEmailVO);
}
/**
* 更新用户邮箱
*/
@PutMapping(path = "/{id}/email")
public void updateEmail(@PathVariable Long id,
@RequestBody @Validated UpdateEmailVO updateEmailVO) {
this.iSysUserService.updateEmail(id, updateEmailVO);
}
/**
*更新用户登陆密码
*/
@PutMapping(path = "/{id}/password")
public void updatePassword(@PathVariable Long id, @RequestBody @Validated UpdatePasswordVO updatePasswordVO) {
this.iSysUserService.updatePassword(id, updatePasswordVO);
}
/**
* 更新用户登陆密码
*/
@PutMapping(path = "/{id}/password")
public void updatePassword(@PathVariable Long id,
@RequestBody @Validated UpdatePasswordVO updatePasswordVO) {
this.iSysUserService.updatePassword(id, updatePasswordVO);
}
/**
* 按条件分页查询指定来源的账号
*/
@GetMapping("/page/criteria/{source}")
public PageVO<AccountVO> queryPagedAccountOfTheSource(UserQueryVO queryVO, @PathVariable String source) {
queryVO.setSource(source);
return this.iSysUserService.queryPagedUser(queryVO);
}
/**
* 按条件分页查询指定来源的账号
*/
@GetMapping("/page/criteria/{source}")
public PageVO<AccountVO> queryPagedAccountOfTheSource(UserQueryVO queryVO,
@PathVariable String source) {
queryVO.setSource(source);
return this.iSysUserService.queryPagedUser(queryVO);
}
/**
* 超管重置用户密码
*/
@PutMapping("/{id}/reset/pwd")
public void resetPwd(@PathVariable long id) {
iSysUserService.resetPwd(id);
}
/**
* 超管重置用户密码
*/
@PutMapping("/{id}/reset/pwd")
public void resetPwd(@PathVariable long id) {
iSysUserService.resetPwd(id);
}
/**
* 找回密码
*/
@PutMapping("/retrieve/pwd")
public void retrievePwd(@RequestBody @Validated RetrievePwdVO vo) {
iSysUserService.retrievePwd(vo);
}
/**
* 找回密码
*/
@PutMapping("/retrieve/pwd")
public void retrievePwd(@RequestBody @Validated RetrievePwdVO vo) {
iSysUserService.retrievePwd(vo);
}
/**
* 根据用户id列表获取用户信息
*/
@PostMapping("/list/ids")
public List<AccountVO> listByIds(@RequestBody List<Long> ids) {
return iSysUserService.listByIds(ids);
}
/**
* 查询所有用户
*/
@GetMapping("/list/all")
public List<AccountVO> listAll() {
return iSysUserService.listAll();
}
}

View File

@ -6,7 +6,6 @@ import club.joylink.rtss.services.ISysUserService;
import club.joylink.rtss.services.local.UserGenerateService;
import club.joylink.rtss.services.permission.OldPermissionDataSyncService;
import club.joylink.rtss.services.student.IDepartUserStatisticService;
import club.joylink.rtss.util.VoiceFileUtils;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.UserQueryVO;
@ -17,18 +16,19 @@ import club.joylink.rtss.vo.client.user.WeChatBindStatusVO;
import club.joylink.rtss.vo.user.AccountCreateVO;
import club.joylink.rtss.vo.user.CreateAccountCheck;
import club.joylink.rtss.vo.user.UserGenerateConfigVO;
import com.google.common.collect.Lists;
import org.apache.tomcat.util.http.fileupload.FileUtils;
import java.util.List;
import javax.validation.constraints.NotBlank;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotBlank;
import java.io.*;
import java.util.List;
import java.util.Objects;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 用户配置接口
@ -37,136 +37,135 @@ import java.util.Objects;
@RequestMapping("/api/user")
public class UserController {
@Autowired
private ISysUserService iSysUserService;
@Autowired
private ISysUserService iSysUserService;
@Autowired
private UserGenerateService userGenerateService;
@Autowired
private UserGenerateService userGenerateService;
@Autowired
private IDepartUserStatisticService iDepartUserStatisticService;
@Autowired
private IDepartUserStatisticService iDepartUserStatisticService;
@Autowired
private OldPermissionDataSyncService syncService;
/**
*生成线下环境用户
*/
@Role({RoleEnum.SuperAdmin})
@PostMapping(path = "/generate/offline")
public void generateOfflineUsers(@RequestBody @Validated UserGenerateConfigVO generateConfigVO,
@RequestAttribute AccountVO user) {
this.userGenerateService.generateOfflineUser(generateConfigVO, user);
}
@Autowired
private OldPermissionDataSyncService syncService;
@Role({RoleEnum.SuperAdmin, RoleEnum.Admin})
@PostMapping(path = "")
public void createAccount(@RequestBody @Validated(CreateAccountCheck.class) AccountCreateVO accountCreateVO,
@RequestAttribute AccountVO user) {
this.iSysUserService.createAccount(accountCreateVO, user);
}
@Role({RoleEnum.SuperAdmin, RoleEnum.Admin})
@GetMapping(path = "sync")
public List<String> sync(){
if(!this.syncService.initData()){
throw new RuntimeException("正在同步。。。");
}
return this.syncService.sync();
}
/**
*分页获取用户数据
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@GetMapping(path = "")
public PageVO<AccountVO> queryPagedUser(UserQueryVO queryVO) {
return this.iSysUserService.queryPagedUser(queryVO);
}
/**
* 生成线下环境用户
*/
@Role({RoleEnum.SuperAdmin})
@PostMapping(path = "/generate/offline")
public void generateOfflineUsers(@RequestBody @Validated UserGenerateConfigVO generateConfigVO,
@RequestAttribute AccountVO user) {
this.userGenerateService.generateOfflineUser(generateConfigVO, user);
}
/**
*修改用户角色
*/
@Role(RoleEnum.SuperAdmin)
@PutMapping(path = "/{id}/role")
public void updateUserRole(@PathVariable Long id, @RequestBody AccountVO accountVO, @RequestAttribute AccountVO user) {
this.iSysUserService.updateUserRole(id, user.getId(), accountVO);
}
@Role({RoleEnum.SuperAdmin, RoleEnum.Admin})
@PostMapping(path = "")
public void createAccount(
@RequestBody @Validated(CreateAccountCheck.class) AccountCreateVO accountCreateVO,
@RequestAttribute AccountVO user) {
this.iSysUserService.createAccount(accountCreateVO, user);
}
/**
*超管修改用户信息
*/
@Role(RoleEnum.SuperAdmin)
@PutMapping("/superAdmin/update/userInfo")
public void superAdminUpdateUserInfo(@RequestBody AccountVO updateUser, @RequestAttribute AccountVO user) {
iSysUserService.superAdminUpdateUserInfo(updateUser, user);
}
/**
* 分页获取用户数据
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@GetMapping(path = "")
public PageVO<AccountVO> queryPagedUser(UserQueryVO queryVO) {
return this.iSysUserService.queryPagedUser(queryVO);
}
@Role(RoleEnum.SuperAdmin)
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
this.iSysUserService.logicDelete(id);
}
/**
* 修改用户角色
*/
@Role(RoleEnum.SuperAdmin)
@PutMapping(path = "/{id}/role")
public void updateUserRole(@PathVariable Long id, @RequestBody AccountVO accountVO,
@RequestAttribute AccountVO user) {
this.iSysUserService.updateUserRole(id, user.getId(), accountVO);
}
/**
* 修改用户密码
*/
@PutMapping(path = "/{id}/password")
public void updateUserPassword(@PathVariable Long id, @RequestBody AccountVO accountVO, @RequestAttribute AccountVO user) {
this.iSysUserService.updateUserPassword(id, accountVO.getPassword());
}
/**
* 超管修改用户信息
*/
@Role(RoleEnum.SuperAdmin)
@PutMapping("/superAdmin/update/userInfo")
public void superAdminUpdateUserInfo(@RequestBody AccountVO updateUser,
@RequestAttribute AccountVO user) {
iSysUserService.superAdminUpdateUserInfo(updateUser, user);
}
/**
* 获取微信小程序绑定二维码
*/
@GetMapping(path = "/bind/wm/url")
public WeChatBindStatusVO getWeChatBindUrl(@RequestAttribute LoginUserInfoVO loginInfo) {
return this.iSysUserService.getWeChatBindUrl(loginInfo);
}
@Role(RoleEnum.SuperAdmin)
@DeleteMapping("/{id}")
public void delete(@PathVariable Long id) {
this.iSysUserService.logicDelete(id);
}
/**
* 用户绑定微信小程序
*/
@PutMapping(path = "/bind/wm")
public void userBindWm(String code, Long userId) {
this.iSysUserService.userBindWm(code, userId);
}
/**
* 修改用户密码
*/
@PutMapping(path = "/{id}/password")
public void updateUserPassword(@PathVariable Long id, @RequestBody AccountVO accountVO,
@RequestAttribute AccountVO user) {
this.iSysUserService.updateUserPassword(id, accountVO.getPassword());
}
/**
* 获取用户总数量
*/
@GetMapping(path = "/amount")
public int getUserAmount() {
return iSysUserService.getUserAmount();
}
/**
* 获取微信小程序绑定二维码
*/
@GetMapping(path = "/bind/wm/url")
public WeChatBindStatusVO getWeChatBindUrl(@RequestAttribute LoginUserInfoVO loginInfo) {
return this.iSysUserService.getWeChatBindUrl(loginInfo);
}
/**
* 分页获取用户数据模糊查询
*/
@GetMapping(path = "/fuzzy")
public List<AccountVO> fuzzyQueryPagedUser(@NotBlank(message = "参数不能为空") String fuzzyParam) {
return this.iSysUserService.fuzzyQueryPagedUser(fuzzyParam);
}
/**
* 用户绑定微信小程序
*/
@PutMapping(path = "/bind/wm")
public void userBindWm(String code, Long userId) {
this.iSysUserService.userBindWm(code, userId);
}
/**
* 导出部门学生信息及成绩接口
*/
@PutMapping(path = "/scores")
public List<ExportStudentInfo> getStudentSores(@Validated @RequestBody StudentInfoExportParam infoExportParam) {
return this.iDepartUserStatisticService.studentInfoStatistics(infoExportParam);
}
/**
* 获取用户总数量
*/
@GetMapping(path = "/amount")
public int getUserAmount() {
return iSysUserService.getUserAmount();
}
/**
* 查询销售人员
*/
@GetMapping("/seller")
public List<AccountVO> querySellers() {
return iSysUserService.querySellers();
}
/**
* 分页获取用户数据模糊查询
*/
@GetMapping(path = "/fuzzy")
public List<AccountVO> fuzzyQueryPagedUser(@NotBlank(message = "参数不能为空") String fuzzyParam) {
return this.iSysUserService.fuzzyQueryPagedUser(fuzzyParam);
}
/**
*查询管理和超管
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@GetMapping("/adminAndSuperAdmin")
public List<AccountVO> queryAdminsAndSuperAdmins() {
return iSysUserService.queryAdminsAndSuperAdmins();
}
/**
* 导出部门学生信息及成绩接口
*/
@PutMapping(path = "/scores")
public List<ExportStudentInfo> getStudentSores(
@Validated @RequestBody StudentInfoExportParam infoExportParam) {
return this.iDepartUserStatisticService.studentInfoStatistics(infoExportParam);
}
/**
* 查询销售人员
*/
@GetMapping("/seller")
public List<AccountVO> querySellers() {
return iSysUserService.querySellers();
}
/**
* 查询管理和超管
*/
@Role({RoleEnum.Admin, RoleEnum.SuperAdmin})
@GetMapping("/adminAndSuperAdmin")
public List<AccountVO> queryAdminsAndSuperAdmins() {
return iSysUserService.queryAdminsAndSuperAdmins();
}
}

View File

@ -0,0 +1,49 @@
package club.joylink.rtss.controller.user;
import club.joylink.rtss.services.user.UserSimulationRecordService;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.simulationUsage.UserSimulationQueryVO;
import club.joylink.rtss.vo.client.simulationUsage.UserSimulationRecordVO;
import club.joylink.rtss.vo.client.simulationUsage.UserSimulationStatsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 用户使用记录管理接口
*/
@RestController
@RequestMapping(path = "/api/record")
public class UserUsageRecordController {
@Autowired
private UserSimulationRecordService userSimulationRecordService;
/**
* 列表查询用户使用记录统计
*/
@GetMapping("/stats/list/criteria/{userId}")
public List<UserSimulationStatsVO> listSimulationUsageStats(@PathVariable long userId, UserSimulationQueryVO queryVO) {
return userSimulationRecordService.listSimulationUsageStats(userId, queryVO);
}
/**
* 查询项目下所有地图的仿真使用统计
*/
@GetMapping("/stats/list/criteria/project/{projectCode}")
public List<UserSimulationStatsVO> listSimulationUsageStats(@PathVariable String projectCode, UserSimulationQueryVO queryVO) {
return userSimulationRecordService.listSimulationUsageStats(projectCode, queryVO);
}
/**
* 分页查询仿真使用记录
*/
@GetMapping("/page/criteria/{accountSource}")
public PageVO<UserSimulationRecordVO> pagedQuerySimulationRecord(@PathVariable String accountSource, UserSimulationQueryVO queryVO) {
return userSimulationRecordService.pagedQueryUserSimulationRecord(accountSource, queryVO);
}
}

View File

@ -1,180 +0,0 @@
package club.joylink.rtss.controller.user;
import club.joylink.rtss.constants.RoleEnum;
import club.joylink.rtss.controller.advice.Role;
import club.joylink.rtss.services.IUserUsageStatsService;
import club.joylink.rtss.services.user.IUserSimulationStatService;
import club.joylink.rtss.vo.AccountVO;
import club.joylink.rtss.vo.client.*;
import club.joylink.rtss.vo.client.simulationUsage.*;
import club.joylink.rtss.vo.client.trainingUsage.UserTrainingRecordVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
*用户使用数据统计接口
*/
@RestController
@RequestMapping(path = "/api/stats")
public class UserUsageStatsController {
@Autowired
private IUserUsageStatsService iUserUsageStatsService;
@Autowired
private IUserSimulationStatService iUserSimulationStatService;
/**
* 课程列表
*/
@GetMapping(path = "/lesson/list")
public List<UserRankStatsVO> queryLessonList(@RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.queryLessonList(user);
}
/**
* 课程统计排名
*/
@GetMapping(path = "/lesson/{lessonId}/rank")
public List<UserRankStatsVO> lessonRank(@PathVariable Long lessonId, @RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.lessonRank(lessonId, user);
}
/**
* 个人课程实训数据统计
*/
@GetMapping(path = "/lesson/{lessonId}/stats")
public List<UserRankStatsVO> lessonPersonalStats(@PathVariable Long lessonId, @RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.personalLessonStats(lessonId, user);
}
/**
* 查询参与考试的课程列表
*/
@GetMapping(path = "/exam/lessonList")
public List<UserRankStatsVO> queryExamLessonList(@RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.queryExamLessonList(user);
}
/**
* 查询参与考试的试题列表
*/
@GetMapping(path = "/exam/{lessonId}/list")
public List<UserRankStatsVO> queryExamList(@PathVariable Long lessonId, @RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.queryExamList(lessonId, user);
}
/**
* 考试排名
*/
@GetMapping(path = "/exam/{examId}/rank")
public List<UserRankStatsVO> examRank(@PathVariable long examId, @RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.examRank(examId, user);
}
/**
* 个人考试数据统计
*/
@GetMapping(path = "/exam/{examId}/stats")
public List<UserRankStatsVO> examPersonalStats(@PathVariable long examId, @RequestAttribute AccountVO user) {
return this.iUserUsageStatsService.examPersonalStats(examId, user);
}
/**
* 查询参与仿真的地图列表
*/
@GetMapping(path = "/simulation/mapList")
public List<UserRankStatsVO> querySimulationMapList(@RequestAttribute AccountVO user) {
return iUserSimulationStatService.querySimulationMapList(user);
}
/**
* 查询参与仿真的产品列表
*/
@GetMapping(path = "/simulation/{mapId}/prdList")
public List<UserRankStatsVO> querySimulationPrdList(@PathVariable Long mapId, @RequestAttribute AccountVO user) {
return iUserSimulationStatService.querySimulationPrdList(mapId, user);
}
/**
* 仿真时长排名
*/
@GetMapping(path = "/simulation/{mapId}/{prdType}/rank")
public List<UserRankStatsVO> simulationRank(@PathVariable Long mapId, @PathVariable String prdType, @RequestAttribute AccountVO user) {
return iUserSimulationStatService.simulationRank(mapId, prdType, user);
}
/**
* 个人仿真数据统计
*/
@GetMapping(path = "/simulation/{mapId}/stats")
public List<UserRankStatsVO> simulationPersonalStats(@PathVariable Long mapId, @RequestAttribute AccountVO user) {
return iUserSimulationStatService.simulationPersonalStats(mapId, user);
}
/**
* 统计各系统总时长
*/
@GetMapping(path = "/total")
public List<UsageTotalStatsVO> totalSimulationDuration(boolean filter) {
return iUserUsageStatsService.totalDuration(filter);
}
/**
* 分页查询用户仿真数据
*/
@GetMapping("/simulation")
public PageVO<UserSimulationStatsListVO> queryPagedStats(UserSimulationStatsQueryVO queryVO) {
return iUserSimulationStatService.queryPagedStats(queryVO);
}
/**
* 添加用户仿真数据
*/
@Role(value = {RoleEnum.SuperAdmin, RoleEnum.Admin})
@PostMapping(path = "/simulation")
public void addUserSimulationStats(@RequestBody @Validated UserSimulationStatsVO statsVO,
@RequestAttribute AccountVO user) {
iUserSimulationStatService.addUserSimulationStats(statsVO, user);
}
/**
* 更新用户仿真数据
*/
@Role(value = {RoleEnum.SuperAdmin, RoleEnum.Admin})
@PutMapping(path = "/{statsId}")
public void updateUserSimulationStats(@PathVariable Long statsId,
@RequestBody UserSimulationStatsVO statsVO,
@RequestAttribute AccountVO user) {
iUserSimulationStatService.updateUserSimulationStats(statsId, statsVO, user);
}
/**
* 删除用户仿真数据
*/
@Role(value = {RoleEnum.SuperAdmin, RoleEnum.Admin})
@DeleteMapping(path = "/{statsId}")
public void deleteUserSimulationStats(@PathVariable Long statsId, @RequestAttribute AccountVO user) {
iUserSimulationStatService.deleteUserSimulationStats(statsId, user);
}
/**
* 分页查询仿真使用记录
*/
@GetMapping("/simulation/page/criteria/{accountSource}")
public PageVO<UserSimulationRecordVO> pagedQuerySimulationRecord(@PathVariable String accountSource, UserSimulationQueryVO queryVO) {
return iUserSimulationStatService.pagedQuerySimulationRecord(accountSource, queryVO);
}
/**
* 分页查询实训使用记录
*/
@GetMapping("/training/page/criteria/{accountSource}")
public PageVO<UserTrainingRecordVO> pagedQueryTrainingRecord(@PathVariable String accountSource, UserSimulationQueryVO queryVO) {
return iUserUsageStatsService.pagedQueryTrainingRecord(accountSource, queryVO);
}
}

View File

@ -4,11 +4,14 @@ import club.joylink.rtss.services.voice.IVoiceTrainingService;
import club.joylink.rtss.services.voice.baidu.TokenHolder;
import club.joylink.rtss.vo.client.PageQueryVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.client.voice.VoiceRecognitionResult;
import club.joylink.rtss.vo.client.competition.VoiceErrorVO;
import club.joylink.rtss.vo.client.voice.VoiceRecognitionResult;
import club.joylink.rtss.vo.voice.VoiceVerifyResultVO;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@ -20,34 +23,46 @@ import org.springframework.web.multipart.MultipartFile;
@RequestMapping("/api/voice")
public class VoiceController {
@Autowired
private IVoiceTrainingService iVoiceTrainingService;
@Autowired
private IVoiceTrainingService iVoiceTrainingService;
/**
* 语音识别
* @param file
* @return
*/
@PostMapping("recognition")
public VoiceRecognitionResult voiceRecognition(MultipartFile file) {
return iVoiceTrainingService.voiceRecognition(file);
}
/**
* 语音识别
*
* @param file
* @return
*/
@PostMapping("recognition")
public VoiceRecognitionResult voiceRecognition(MultipartFile file) {
return iVoiceTrainingService.voiceRecognition(file);
}
/**
* 查询语音识别错误集
* @param queryVO
* @return
*/
@GetMapping("/errorSet/paged")
public PageVO<VoiceErrorVO> pagedQueryErrorSet(PageQueryVO queryVO) {
return iVoiceTrainingService.pagedQueryErrorSet(queryVO);
}
/**
* 查询语音识别错误集
*
* @param queryVO
* @return
*/
@GetMapping("/errorSet/paged")
public PageVO<VoiceErrorVO> pagedQueryErrorSet(PageQueryVO queryVO) {
return iVoiceTrainingService.pagedQueryErrorSet(queryVO);
}
/**
* 获取百度语音识别token
*/
@GetMapping("/token/baidu")
public String getBaiduToken() {
return TokenHolder.getInstance().getToken();
}
/**
* 获取百度语音识别token
*/
@GetMapping("/token/baidu")
public String getBaiduToken() {
return TokenHolder.getInstance().getToken();
}
/**
* 校验语音识别结果
*/
@PostMapping("/verify")
public VoiceVerifyResultVO verifyVoice(HttpServletRequest request, @RequestBody byte[] fileData,
String text) {
String contentType = request.getHeader("Content-Type");
return iVoiceTrainingService.verifyVoice(contentType, fileData, text);
}
}

View File

@ -0,0 +1,56 @@
package club.joylink.rtss.controller.voice;
import club.joylink.rtss.controller.advice.AuthenticateInterceptor;
import club.joylink.rtss.services.voice.IVoiceDataConfigService;
import club.joylink.rtss.vo.LoginUserInfoVO;
import club.joylink.rtss.vo.client.PageVO;
import club.joylink.rtss.vo.voice.VoiceDiscriminateConfigVO;
import club.joylink.rtss.vo.voice.VoiceQueryVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 语音管理接口
*/
@RestController
@RequestMapping("/api/voice/manage")
public class VoiceManageController {
@Autowired
private IVoiceDataConfigService configService;
@PostMapping("saveOrUpdate")
public void saveOrUpdate(@RequestBody VoiceDiscriminateConfigVO configVO,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
this.configService.saveOrUpdate(configVO, userInfoVO);
}
@GetMapping("find/{id}")
public VoiceDiscriminateConfigVO find(@PathVariable(value = "id") Long id) {
return this.configService.byId(id);
}
@GetMapping("query")
public PageVO<VoiceDiscriminateConfigVO> query(@ModelAttribute VoiceQueryVO queryVO) {
return this.configService.query(queryVO);
}
/**
* 获取百度语音识别token
*/
@GetMapping("{id}/{status}")
public void changeStatus(@PathVariable(value = "id") Long id,
@PathVariable(value = "status") Integer status,
@RequestAttribute(name = AuthenticateInterceptor.LOGIN_INFO_KEY) LoginUserInfoVO userInfoVO) {
this.configService.changeStatus(id, status, userInfoVO);
}
}

View File

@ -0,0 +1,12 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.AlarmTips;
import club.joylink.rtss.entity.AlarmTipsExample;
import org.springframework.stereotype.Repository;
/**
* AlarmTipsDAO继承基类
*/
@Repository
public interface AlarmTipsDAO extends MyBatisBaseDao<AlarmTips, Long, AlarmTipsExample> {
}

View File

@ -0,0 +1,12 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.CgyView;
import club.joylink.rtss.entity.CgyViewExample;
import org.springframework.stereotype.Repository;
/**
* CgyViewDAO继承基类
*/
@Repository
public interface CgyViewDAO extends MyBatisBaseDao<CgyView, String, CgyViewExample> {
}

View File

@ -1,12 +0,0 @@
//package club.joylink.rtss.dao;
//
//import club.joylink.rtss.entity.Company;
//import club.joylink.rtss.entity.CompanyExample;
//import org.springframework.stereotype.Repository;
//
///**
// * CompanyDAO继承基类
// */
////@Repository
////public interface CompanyDAO extends MyBatisBaseDao<Company, Integer, CompanyExample> {
////}

View File

@ -0,0 +1,39 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.MapFunctionTemplate;
import club.joylink.rtss.entity.MapFunctionTemplateExample;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface MapFunctionTemplateDAO {
long countByExample(MapFunctionTemplateExample example);
int deleteByExample(MapFunctionTemplateExample example);
int deleteByPrimaryKey(Long id);
int insert(MapFunctionTemplate record);
int insertSelective(MapFunctionTemplate record);
List<MapFunctionTemplate> selectByExampleWithBLOBs(MapFunctionTemplateExample example);
List<MapFunctionTemplate> selectByExample(MapFunctionTemplateExample example);
MapFunctionTemplate selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") MapFunctionTemplate record, @Param("example") MapFunctionTemplateExample example);
int updateByExampleWithBLOBs(@Param("record") MapFunctionTemplate record, @Param("example") MapFunctionTemplateExample example);
int updateByExample(@Param("record") MapFunctionTemplate record, @Param("example") MapFunctionTemplateExample example);
int updateByPrimaryKeySelective(MapFunctionTemplate record);
int updateByPrimaryKeyWithBLOBs(MapFunctionTemplate record);
int updateByPrimaryKey(MapFunctionTemplate record);
}

View File

@ -52,7 +52,7 @@ public interface PublishedTraining2DAO {
@Insert(value = "<script>" +
"insert into published_training2 (name, map_id, description, type, label_json, map_location_json, bg_scene_json," +
" run_plan_id, opera_json, step_json, scoring_rule_json, member_json, player_id_json, failure_condition_json," +
" creator_id, create_time, update_time, state, final_scenes_json, org_id, client)" +
" creator_id, create_time, update_time, state, final_scenes_json, org_id, client, shared)" +
"values " +
" <foreach collection=\"list\" item=\"entity\" separator=\",\"> " +
" (#{entity.name,jdbcType=VARCHAR}, #{entity.mapId,jdbcType=BIGINT}, #{entity.description,jdbcType=VARCHAR}, " +
@ -61,7 +61,7 @@ public interface PublishedTraining2DAO {
" #{entity.stepJson,jdbcType=LONGVARCHAR}, #{entity.scoringRuleJson,jdbcType=LONGVARCHAR}, #{entity.memberJson,jdbcType=LONGVARCHAR}," +
" #{entity.playerIdJson,jdbcType=LONGVARCHAR}, #{entity.failureConditionJson,jdbcType=VARCHAR}, #{entity.creatorId,jdbcType=BIGINT}," +
" #{entity.createTime,jdbcType=DATETIME}, #{entity.updateTime,jdbcType=DATETIME}, #{entity.state,jdbcType=INT}," +
" #{entity.finalScenesJson,jdbcType=LONGVARCHAR}, #{entity.orgId,jdbcType=BIGINT}, #{entity.client,jdbcType=VARCHAR})" +
" #{entity.finalScenesJson,jdbcType=LONGVARCHAR}, #{entity.orgId,jdbcType=BIGINT}, #{entity.client,jdbcType=VARCHAR}, #{entity.shared, jdbcType=INT})" +
" </foreach>" +
"</script>")
void batchInsert(@Param("list") PublishedTraining2 list);
@ -72,4 +72,8 @@ public interface PublishedTraining2DAO {
List<Map<String, Long>> selectTrainingByRuleId(@Param("ruleIdList") List<Long> ruleIdList, @Param("mapIdList") List<Long> mapIdList);
List<Long> selectTrainingIdByRuleNameAndMapId(@Param("ruleNameList") List<Map<String,String>> ruleNameMapList, @Param("mapId") Long mapId);
int updateTrainingOrgByMapIdList(@Param("orgId") Long orgId, @Param("mapIdList") List<Long> mapIdList);
void updateTrainingLabelList(@Param("list") List<PublishedTraining2> training2List);
}

View File

@ -65,6 +65,7 @@ public interface TrainingDAO extends MyBatisBaseDao<Training, Long, TrainingExam
"<when test=\"null != trainingName and '' != trainingName \"> and training.name like CONCAT('%',#{trainingName},'%') </when>" +
"<when test=\"null != userName and '' != userName \"> and user.name like CONCAT('%',#{userName},'%') </when>" +
"<when test=\"null != userMobile and '' != userMobile \"> and user.mobile like CONCAT('%',#{userMobile},'%') </when>" +
"<when test=\"null != userId and '' != userId \"> and user.id = #{userId} </when>" +
" order by id DESC " +
"</script>")
Page<UserTrainingListVO> queryPagedUserTraining(UserTrainingQueryVO queryVO);

View File

@ -54,6 +54,7 @@ public interface UserExamMapper {
"<when test=\"null != examName and '' != examName \"> and ue.exam_name like CONCAT('%',#{examName},'%') </when>" +
"<when test=\"null != userName and '' != userName \"> and user.name like CONCAT('%',#{userName},'%') </when>" +
"<when test=\"null != userMobile and '' != userMobile \"> and user.mobile like CONCAT('%',#{userMobile},'%') </when>" +
"<when test=\"null != userId and '' != userId \"> and user.id = #{userId} </when>" +
"<when test=\"null != result and '' != result \"> and ue.result = #{result} </when>" +
" order by end_time DESC " +
"</script>")

View File

@ -0,0 +1,12 @@
package club.joylink.rtss.dao;
import club.joylink.rtss.entity.UserSimulationRecord;
import club.joylink.rtss.entity.UserSimulationRecordExample;
import org.springframework.stereotype.Repository;
/**
* UserSimulationRecordDAO继承基类
*/
@Repository
public interface UserSimulationRecordDAO extends MyBatisBaseDao<UserSimulationRecord, Long, UserSimulationRecordExample> {
}

View File

@ -14,8 +14,9 @@ import java.util.List;
@Mapper
@Repository
public interface PaperQuestionDAO {
@Select("<script>" +
"select * from rts_paper_question where 1 = 1 " +
@Select("<script>" +
"select * from rts_paper_question where 1 = 1 " +
// "<choose>" +
// "<when test=\"projectCode == '"+ Project.DEFAULT_PROJECT_CODE +"'\">"+
// " and project_code is null" +
@ -24,48 +25,54 @@ public interface PaperQuestionDAO {
// " and project_code = #{projectCode} "+
// " </otherwise>" +
// "</choose>" +
" and org_id = #{companyId,jdbcType=BIGINT} " +
" and org_id = #{companyId,jdbcType=BIGINT} " +
// "<if test=\"companyIdList != null and companyIdList.size > 0\">"+
// "<foreach collection=\"companyIdList\" open=\" and company_id in (\" close=\")\" item=\"d\" separator=\",\">"+
// " #{d} "+
// "</foreach></if>"+
" and is_del= #{isDelete,jdbcType=INTEGER} " +
"<if test=\"types != null and types.size > 0\">"+
"<foreach collection=\"types\" open=\" and type in (\" close=\")\" item=\"d\" separator=\",\">"+
" #{d} "+
"</foreach></if>"+
"<if test=\"lable != null and lable.size > 0\"> " +
" <foreach collection=\"lable\" open=\" and (\" close=\")\" item=\"d\" separator=\" or \"> "+
" find_in_set(#{d},race_lable) > 0 "+
" </foreach>" +
"</if>" +
"</script>")
List<PaperQuestionWithBLOBs> findFromAndRaceLable(Long companyId,int isDelete, List<String> lable, List<String> types);
long countByExample(PaperQuestionExample example);
" and is_del= #{isDelete,jdbcType=INTEGER} " +
"<if test=\"types != null and types.size > 0\">" +
"<foreach collection=\"types\" open=\" and type in (\" close=\")\" item=\"d\" separator=\",\">" +
" #{d} " +
"</foreach></if>" +
"<if test=\"lable != null and lable.size > 0\"> " +
" <foreach collection=\"lable\" open=\" and (\" close=\")\" item=\"d\" separator=\" or \"> " +
" find_in_set(#{d},race_lable) > 0 " +
" </foreach>" +
"</if>" +
"</script>")
List<PaperQuestionWithBLOBs> findFromAndRaceLable(Long companyId, int isDelete, List<String> lable, List<String> types);
int deleteByExample(PaperQuestionExample example);
@Select("<script>" +
"select id from rts_paper_question where org_id = #{orgId} "
+ "</script>")
List<Long> findAllId(@Param("orgId") Long id);
int deleteByPrimaryKey(Long id);
long countByExample(PaperQuestionExample example);
int insert(PaperQuestionWithBLOBs record);
int deleteByExample(PaperQuestionExample example);
int insertSelective(PaperQuestionWithBLOBs record);
int deleteByPrimaryKey(Long id);
List<PaperQuestionWithBLOBs> selectByExampleWithBLOBs(PaperQuestionExample example);
int insert(PaperQuestionWithBLOBs record);
List<PaperQuestion> selectByExample(PaperQuestionExample example);
int insertSelective(PaperQuestionWithBLOBs record);
PaperQuestionWithBLOBs selectByPrimaryKey(Long id);
List<PaperQuestionWithBLOBs> selectByExampleWithBLOBs(PaperQuestionExample example);
int updateByExampleSelective(@Param("record") PaperQuestionWithBLOBs record, @Param("example") PaperQuestionExample example);
List<PaperQuestion> selectByExample(PaperQuestionExample example);
int updateByExampleWithBLOBs(@Param("record") PaperQuestionWithBLOBs record, @Param("example") PaperQuestionExample example);
PaperQuestionWithBLOBs selectByPrimaryKey(Long id);
int updateByExample(@Param("record") PaperQuestion record, @Param("example") PaperQuestionExample example);
int updateByExampleSelective(@Param("record") PaperQuestionWithBLOBs record, @Param("example") PaperQuestionExample example);
int updateByPrimaryKeySelective(PaperQuestionWithBLOBs record);
int updateByExampleWithBLOBs(@Param("record") PaperQuestionWithBLOBs record, @Param("example") PaperQuestionExample example);
int updateByPrimaryKeyWithBLOBs(PaperQuestionWithBLOBs record);
int updateByExample(@Param("record") PaperQuestion record, @Param("example") PaperQuestionExample example);
int updateByPrimaryKey(PaperQuestion record);
int updateByPrimaryKeySelective(PaperQuestionWithBLOBs record);
int updateByPrimaryKeyWithBLOBs(PaperQuestionWithBLOBs record);
int updateByPrimaryKey(PaperQuestion record);
}

View File

@ -2,121 +2,125 @@ package club.joylink.rtss.dao.permission;
import club.joylink.rtss.entity.permission.PermissionSubject;
import club.joylink.rtss.entity.permission.PermissionSubjectExample;
import club.joylink.rtss.vo.permission.PermissionDistributeStatusEnum;
import club.joylink.rtss.vo.permission.PermissionSubjectStatusEnum;
import club.joylink.rtss.vo.permission.subject.PermissionSubjectQueryVO;
import club.joylink.rtss.vo.permission.subject.PermissionSubjectVO;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Repository;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface PermissionSubjectDAO {
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id," +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named," +
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code,"+
" A.amount,A.remains,A.status,A.forever,A.start_time,A.end_time,A.create_time," +
" D.name as permission_name,A.permission_id,A.distribute_id,D.map_id,D.project_code as permission_project_code,D.permission_type " +
" from rts_permission_subject A left join sys_account B on A.subject_type = 'user' and A.subject_id = B.id " +
" left join org C on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" left join rts_permission D on A.permission_id = D.id " +
//" left join rts_distribute E on A.distribute_id = E.id " +
" where 1 = 1 " +
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id," +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named,"
+
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code," +
" A.amount,A.remains,A.status,A.forever,A.start_time,A.end_time,A.create_time," +
" D.name as permission_name,A.permission_id,A.distribute_id,D.map_id,D.project_code as permission_project_code,D.permission_type "
+
" from rts_permission_subject A left join sys_account B on A.subject_type = 'user' and A.subject_id = B.id "
+
" left join org C on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" left join rts_permission D on A.permission_id = D.id " +
//" left join rts_distribute E on A.distribute_id = E.id " +
" where 1 = 1 " +
/*"<if test=\"mapId != null and mapId != 0\"> " +
" and E.map_id = #{mapId} " +
"</if> " +*/
" and (C.id = #{orgId} or B.id = #{userId} or E.code = #{projectCode}) " +
" and A.status = #{status}" +
"</script>")
List<PermissionSubjectVO> findPermissionWithMapIdAndUserInfo(/*@Param("mapId") Long mapId,*/@Param("orgId") Long orgId,@Param("userId") Long userId,@Param("status") Integer status,@Param("projectCode") String projectCode);
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id, " +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named," +
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code,"+
"B.name as permission_name,A.permission_id " +
" from rts_permission_subject A left join rts_permission B on A.permission_id = B.id" +
" left join sys_account C on A.subject_type = 'user' and A.subject_id = C.id " +
" left join org D on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" where 1 = 1 and A.parent_id in " +
"<if test=\"idList != null and idList.size > 0\"> " +
" <foreach collection=\"idList\" open=\"(\" close=\")\" item=\"d\" separator=\" , \"> "+
" #{d}"+
" </foreach>" +
"</if> " +
"order by id asc" +
"</script>")
List<PermissionSubjectVO> findDistributePermission(List<Long> idList);
" and (C.id = #{orgId} or B.id = #{userId} or E.code = #{projectCode}) " +
" and A.status = #{status}" +
"</script>")
List<PermissionSubjectVO> findPermissionWithMapIdAndUserInfo(/*@Param("mapId") Long mapId,*/
@Param("orgId") Long orgId, @Param("userId") Long userId, @Param("status") Integer status,
@Param("projectCode") String projectCode);
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id," +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named," +
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code,"+
"A.amount,A.remains,A.status,A.forever,A.start_time,A.end_time,A.create_time,D.name as permission_name,A.permission_id " +
" from rts_permission_subject A left join sys_account B on A.subject_type = 'user' and A.subject_id = B.id " +
" left join org C on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" left join rts_permission D on A.permission_id = D.id " +
" where 1 = 1 " +
"<if test=\"vo.subType!=null and vo.subType!=''\">" +
" AND A.subject_type = #{vo.subType} " +
"</if>"+
"<if test=\"vo.named!=null and vo.named!=''\">" +
" AND (B.name = #{vo.named} or B.nickname = #{vo.named} or C.name = #{vo.named} or E.name = #{vo.named}) " +
"</if>"+
"<if test=\"vo.status!=null\">" +
" AND A.status = #{vo.status} " +
"</if>"+
" order by id desc " +
"</script>")
List<PermissionSubjectVO> customerQuery(@Param("vo") PermissionSubjectQueryVO queryVO);
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id, " +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named,"
+
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code," +
"B.name as permission_name,A.permission_id " +
" from rts_permission_subject A left join rts_permission B on A.permission_id = B.id" +
" left join sys_account C on A.subject_type = 'user' and A.subject_id = C.id " +
" left join org D on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" where 1 = 1 and A.parent_id in " +
"<if test=\"idList != null and idList.size > 0\"> " +
" <foreach collection=\"idList\" open=\"(\" close=\")\" item=\"d\" separator=\" , \"> " +
" #{d}" +
" </foreach>" +
"</if> " +
"order by id asc" +
"</script>")
List<PermissionSubjectVO> findDistributePermission(List<Long> idList);
/**
* 状态参考 {@link PermissionSubjectStatusEnum}
*/
@Update("<script> update rts_permission_subject set status = 2,update_time = now() where forever = 0 and (`status` is null or `status` = 1) " +
" <![CDATA[ and end_time < now() ]]> </script>")
void updateStatusByTimeOver();
long countByExample(PermissionSubjectExample example);
@Select("<script>" +
"select A.id,A.subject_type,A.subject_id," +
"(case when A.subject_type = 'user' then B.name when A.subject_type = 'org' then C.name when A.subject_type = 'project' then E.name end) as named,"
+
"(case when A.subject_type = 'user' then B.nickname else '' end) as nick_name," +
"(case when A.subject_type = 'project' then E.code else '' end ) as project_code," +
"A.amount,A.remains,A.status,A.forever,A.start_time,A.end_time,A.create_time,D.name as permission_name,A.permission_id "
+
" from rts_permission_subject A left join sys_account B on A.subject_type = 'user' and A.subject_id = B.id "
+
" left join org C on A.subject_type = 'org' and A.subject_id = C.id " +
" left join rts_project E on A.subject_type = 'project' and A.subject_id = E.id " +
" left join rts_permission D on A.permission_id = D.id " +
" where 1 = 1 " +
"<if test=\"vo.subType!=null and vo.subType!=''\">" +
" AND A.subject_type = #{vo.subType} " +
"</if>" +
"<if test=\"vo.named!=null and vo.named!=''\">" +
" AND (B.name = #{vo.named} or B.nickname = #{vo.named} or C.name = #{vo.named} or E.name = #{vo.named}) "
+
"</if>" +
"<if test=\"vo.status!=null\">" +
" AND A.status = #{vo.status} " +
"</if>" +
" order by id desc " +
"</script>")
List<PermissionSubjectVO> customerQuery(@Param("vo") PermissionSubjectQueryVO queryVO);
int deleteByExample(PermissionSubjectExample example);
/**
* 状态参考 {@link PermissionSubjectStatusEnum}
*/
@Update(
"<script> update rts_permission_subject set status = 2,update_time = now() where forever = 0 and (`status` is null or `status` = 1) "
+
" <![CDATA[ and end_time < now() ]]> </script>")
void updateStatusByTimeOver();
int deleteByPrimaryKey(Long id);
long countByExample(PermissionSubjectExample example);
int insert(PermissionSubject record);
int deleteByExample(PermissionSubjectExample example);
@Insert("<script>" +
"insert into rts_permission_subject (permission_id, subject_type, subject_id, amount, remains, `status`,forever, start_time, end_time,create_time, distribute_id, parent_id,is_sync)" +
" values " +
"<foreach collection=\"list\" item=\"item\" index=\"index\" separator=\",\"> " +
"(#{item.permissionId,jdbcType=BIGINT}, #{item.subjectType,jdbcType=VARCHAR}, #{item.subjectId,jdbcType=BIGINT}," +
" #{item.amount,jdbcType=INTEGER}, #{item.remains,jdbcType=INTEGER}, #{item.status,jdbcType=INTEGER}, " +
" #{item.forever,jdbcType=BIT}, #{item.startTime,jdbcType=TIMESTAMP}, #{item.endTime,jdbcType=TIMESTAMP}," +
" #{item.createTime,jdbcType=TIMESTAMP}, #{item.distributeId,jdbcType=BIGINT}, #{item.parentId,jdbcType=BIGINT}," +
" #{item.isSync,jdbcType=BIT})" +
"</foreach>" +
int deleteByPrimaryKey(Long id);
"</script>")
void batchInsert(@Param("list") List<PermissionSubject> list);
int insertSelective(PermissionSubject record);
int insert(PermissionSubject record);
List<PermissionSubject> selectByExample(PermissionSubjectExample example);
int insertSelective(PermissionSubject record);
PermissionSubject selectByPrimaryKey(Long id);
List<PermissionSubject> selectByExample(PermissionSubjectExample example);
int updateByExampleSelective(@Param("record") PermissionSubject record, @Param("example") PermissionSubjectExample example);
PermissionSubject selectByPrimaryKey(Long id);
int updateByExample(@Param("record") PermissionSubject record, @Param("example") PermissionSubjectExample example);
int updateByExampleSelective(@Param("record") PermissionSubject record,
@Param("example") PermissionSubjectExample example);
int updateByPrimaryKeySelective(PermissionSubject record);
int updateByExample(@Param("record") PermissionSubject record,
@Param("example") PermissionSubjectExample example);
int updateByPrimaryKey(PermissionSubject record);
int updateByPrimaryKeySelective(PermissionSubject record);
int updateByPrimaryKey(PermissionSubject record);
}

View File

@ -0,0 +1,55 @@
package club.joylink.rtss.dao.racetr;
import club.joylink.rtss.dao.MyBatisBaseDao;
import club.joylink.rtss.entity.racetr.RacetrPaper;
import club.joylink.rtss.entity.racetr.RacetrPaperExample;
import club.joylink.rtss.vo.race.RacePaperPageVO;
import club.joylink.rtss.vo.race.RacePaperQueryVO;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
* RacetrPaperDAO继承基类
*/
@Repository
public interface RacetrPaperDAO extends MyBatisBaseDao<RacetrPaper, Long, RacetrPaperExample> {
@Select("<script>"
+ " select A.id,A.name,A.`desc`,A.season_id as seasonId ,B.code as seasonName,B.group,B.term as seasonTerm"
+ " ,A.creator_id,A.create_time,A.updater_id,A.update_time,C.nickname as creatorName,D.nickname as updaterName "
+ " from racetr_paper A left join racetr_season B on A.season_id = B.id "
+ " left join sys_account C on A.creator_id = C.id "
+ " left JOIN sys_account D on A.updater_id = D.id "
+ " where 1 = 1 "
+ "<if test='vo.name!= null and vo.name!= \"\"'> "
+ " and A.name like CONCAT('%',#{vo.name},'%') "
+ "</if> "
+ "<if test='vo.group!= null and vo.group != \"\"'> "
+ " and B.group = #{vo.group} "
+ "</if> "
+ "<if test='vo.seasonId!= null and vo.seasonId!= \"\"'> "
+ " and A.season_id = #{vo.seasonId} "
+ "</if> "
+ "<if test='vo.seasonName!= null and vo.seasonName!= \"\"'> "
+ " and B.code like CONCAT('%',#{vo.seasonName},'%') "
+ "</if> "
+ "</script>")
List<RacePaperPageVO> pages(@Param("vo") RacePaperQueryVO vo);
@Select("<script>"
+ " select A.id,A.name,A.`desc`,A.season_id as seasonId ,B.code as seasonName "
+ " ,A.configs,A.creator_id,A.create_time,A.updater_id,A.update_time,C.nickname as creatorName,D.nickname as updaterName "
+ " from racetr_paper A left join racetr_season B on A.season_id = B.id "
+ " left join sys_account C on A.creator_id = C.id "
+ " left JOIN sys_account D on A.updater_id = D.id "
+ " where 1 = 1 "
+ " and A.id = #{id}"
+ "</script>")
RacePaperPageVO detail(@Param("id") Long id);
}

View File

@ -0,0 +1,47 @@
package club.joylink.rtss.dao.racetr;
import club.joylink.rtss.dao.MyBatisBaseDao;
import club.joylink.rtss.entity.racetr.RacetrScene;
import club.joylink.rtss.entity.racetr.RacetrSceneExample;
import club.joylink.rtss.vo.race.RaceScenePageVO;
import club.joylink.rtss.vo.race.RaceSceneQueryVO;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
* RacetrSceneDAO继承基类
*/
@Repository
public interface RacetrSceneDAO extends MyBatisBaseDao<RacetrScene, Long, RacetrSceneExample> {
@Select("<script>"
+ "select A.id,A.name,A.type,A.map_id as mapId, B.name as mapName, "
+ "A.creator_id,A.create_time,A.updater_id,A.update_time,C.nickname as creatorName,D.nickname as updaterName "
+ "from racetr_scene A left join map_info B on A.map_id = B.id "
+ "left join sys_account C on A.creator_id = C.id "
+ "left JOIN sys_account D on A.updater_id = D.id "
+ " where 1 = 1 "
+ "<if test='vo.name!= null and vo.name!= \"\"'> "
+ " and A.name like CONCAT('%',#{vo.name},'%') "
+ "</if> "
+ "<if test='vo.type!= null and vo.type!= \"\"'> "
+ " and A.type = #{vo.type}"
+ "</if> "
+ "</script>")
List<RaceScenePageVO> pages(@Param("vo") RaceSceneQueryVO vo);
@Select("<script>"
+ "select A.id,A.name,A.type,A.map_id as mapId, B.name as mapName, A.proto"
+ ",A.creator_id,A.create_time,A.updater_id,A.update_time,C.nickname as creatorName,D.nickname as updaterName "
+ "from racetr_scene A left join map_info B on A.map_id = B.id "
+ "left join sys_account C on A.creator_id = C.id "
+ "left JOIN sys_account D on A.updater_id = D.id "
+ " where 1 = 1 "
+ " and A.id = #{id} "
+ "</script>")
RaceScenePageVO detail(@Param("id") Long id);
}

View File

@ -0,0 +1,47 @@
package club.joylink.rtss.dao.racetr;
import club.joylink.rtss.dao.MyBatisBaseDao;
import club.joylink.rtss.entity.racetr.RacetrScoringRule;
import club.joylink.rtss.entity.racetr.RacetrScoringRuleExample;
import club.joylink.rtss.vo.race.RaceRuleListVO;
import club.joylink.rtss.vo.race.TaskRuleQueryVO;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
* RacetrScoringRuleDAO继承基类
*/
@Repository
public interface RacetrScoringRuleDAO extends MyBatisBaseDao<RacetrScoringRule, Long, RacetrScoringRuleExample> {
@Select("<script>"
+ " select A.id,A.name"
+ " ,A.creator_id,A.create_time,A.updater_id,A.update_time,C.nickname as creatorName,D.nickname as updaterName "
+ " from racetr_scoring_rule A "
+ " left join sys_account C on A.creator_id = C.id "
+ " left JOIN sys_account D on A.updater_id = D.id "
+ " where 1 = 1 "
+ "<if test='vo.name!= null and vo.name!= \"\"'> "
+ " and A.name like CONCAT('%',#{vo.name},'%') "
+ "</if> "
+ "<if test='vo.id!= null and vo.id >=0'> "
+ " and A.id = #{vo.id}"
+ "</if> "
+ "</script>")
List<RaceRuleListVO> pages(@Param("vo") TaskRuleQueryVO vo);
@Select("<script>"
+ " select A.id,A.name,A.rule"
+ " ,A.creator_id,A.create_time,A.updater_id,A.update_time,C.nickname as creatorName,D.nickname as updaterName "
+ " from racetr_scoring_rule A "
+ " left join sys_account C on A.creator_id = C.id "
+ " left JOIN sys_account D on A.updater_id = D.id "
+ " where 1 = 1 "
+ " and A.id = #{id}"
+ "</script>")
RaceRuleListVO detail(@Param("id") Long id);
}

View File

@ -0,0 +1,18 @@
package club.joylink.rtss.dao.racetr;
import club.joylink.rtss.dao.MyBatisBaseDao;
import club.joylink.rtss.entity.racetr.RacetrSeason;
import club.joylink.rtss.entity.racetr.RacetrSeasonExample;
import java.util.List;
import org.springframework.stereotype.Repository;
/**
* RacetrSeasonDAO继承基类
*/
@Repository
public interface RacetrSeasonDAO extends MyBatisBaseDao<RacetrSeason, Long, RacetrSeasonExample> {
List<RacetrSeason> selectByExampleWithBLOBs(RacetrSeasonExample example);
}

View File

@ -0,0 +1,33 @@
package club.joylink.rtss.dao.racetr;
import club.joylink.rtss.dao.MyBatisBaseDao;
import club.joylink.rtss.entity.racetr.RacetrTask;
import club.joylink.rtss.entity.racetr.RacetrTaskExample;
import club.joylink.rtss.vo.race.RaceTaskDetailDTO;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
/**
* RacetrTaskDAO继承基类
*/
@Repository
public interface RacetrTaskDAO extends MyBatisBaseDao<RacetrTask, Long, RacetrTaskExample> {
@Select("<script>"
+ "select A.id,A.name,A.desc,A.content,A.standards,B.id as scene_id,B.name as sceneName, "
+ "A.score_rule_id as rule_id,C.name as ruleName,A.parent_id,"
+ "A.creator_id,A.create_time,A.updater_id,A.update_time,D.nickname as creatorName,E.nickname as updaterName "
+ " from racetr_task A left join racetr_scene B on A.scene_id = B.id "
+ " left join racetr_scoring_rule C on A.score_rule_id = C.id "
+ " left join sys_account D on A.creator_id = D.id "
+ " left JOIN sys_account E on A.updater_id = E.id "
+ " where 1 = 1 "
+ " and A.id = #{id}"
+ "</script>")
RaceTaskDetailDTO details(@Param("id") Long id);
List<RaceTaskDetailDTO> recursiveFindTask(@Param("taskIds") List<Long> taskIds);
}

View File

@ -32,4 +32,6 @@ public interface RtsTraining2RuleMapper {
int updateByPrimaryKeyWithBLOBs(RtsTraining2RuleWithBLOBs record);
int updateByPrimaryKey(RtsTraining2Rule record);
void updateScoreRule(@Param("list") List<RtsTraining2RuleWithBLOBs> list);
}

View File

@ -0,0 +1,40 @@
package club.joylink.rtss.dao.voice;
import club.joylink.rtss.entity.voice.VoiceDiscriminateConfig;
import club.joylink.rtss.entity.voice.VoiceDiscriminateConfigExample;
import java.util.List;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
@Mapper
@Repository
public interface VoiceDiscriminateConfigDAO {
long countByExample(VoiceDiscriminateConfigExample example);
int deleteByExample(VoiceDiscriminateConfigExample example);
int deleteByPrimaryKey(Long id);
int insert(VoiceDiscriminateConfig record);
int insertSelective(VoiceDiscriminateConfig record);
List<VoiceDiscriminateConfig> selectByExampleWithBLOBs(VoiceDiscriminateConfigExample example);
List<VoiceDiscriminateConfig> selectByExample(VoiceDiscriminateConfigExample example);
VoiceDiscriminateConfig selectByPrimaryKey(Long id);
int updateByExampleSelective(@Param("record") VoiceDiscriminateConfig record, @Param("example") VoiceDiscriminateConfigExample example);
int updateByExampleWithBLOBs(@Param("record") VoiceDiscriminateConfig record, @Param("example") VoiceDiscriminateConfigExample example);
int updateByExample(@Param("record") VoiceDiscriminateConfig record, @Param("example") VoiceDiscriminateConfigExample example);
int updateByPrimaryKeySelective(VoiceDiscriminateConfig record);
int updateByPrimaryKeyWithBLOBs(VoiceDiscriminateConfig record);
int updateByPrimaryKey(VoiceDiscriminateConfig record);
}

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